这个问题在这里已有答案:
如何计算根节点左侧的节点?这与计算树中的所有左节点不相似。
您应该通过跟踪根和所有其他节点之间的水平距离来计算根左侧的节点。按顺序遍历树并记住当前位置(如果向左移动则为+1,如果向右移动则为-1)应足以完成工作。
def count_left(tree, current_position):
if tree is None:
return 0
is_left = 1 if current_position > 0 else 0
return is_left + count_left(tree.right, current_position -1) + count_left(tree.left, current_position +1)
count_left(tree.left, 1)