【发布时间】:2019-11-21 12:24:16
【问题描述】:
我写了这段代码,当我使用 print 时,我看到我得到了叶子。然而,函数的最终返回是None,而不是叶子的总和,在这个例子中应该是7。我很高兴知道这里出了什么问题。谢谢!
class Node:
def __init__(self, val=None):
self.left = None
self.right = None
self.val = val
def sum_leafs(tree):
if tree is None:
return 0
if tree.right and tree.left:
sum_leafs(tree.right)
sum_leafs(tree.left)
elif tree.right or tree.left:
if tree.right:
sum_leafs(tree.right)
elif tree.left:
sum_leafs(tree.left)
elif tree.right is None and tree.left is None:
return sum_leafs(tree.left) + 1
node = Node(10)
node.right = Node(2)
node.left = Node(11)
node.left.right = Node(5)
print(sum_leafs(node))
【问题讨论】:
-
如果你解决了你的问题,你应该标记正确的答案。
标签: python recursion binary-tree