我在处理二元树。我有 class Tree
而我想写方法 sum()
返回树中所有数字的总和。这是我写的。
def sum(self):
s = self.n
if self.left == None and self.right == None:
return
elif self.left == None and self.right != None:
s = s + self.right.sum()
elif self.left != None and self.right == None:
s = s + self.left.sum()
else:
s = s + self.right.sum()
s = s + self.left.sum()
return s
但它不工作,我被卡在这里。我应该如何在这个任务中实现递归?
你的代码失败了,因为你的初始 return
缺少一个值。
除此之外,你的函数包含了很多冗余,可以去掉,剩下的是:
def sum(self):
s = self.n
if self.right != None:
s += self.right.sum()
if self.left != None:
s += self.left.sum()
return s