我在这个任务中实现递归时遇到了麻烦
I have troubles with implementing recursion in this task
我正在处理二叉树。我有 class Tree
,我想编写方法 sum()
,即 returns 树中所有数字的总和。这是我写的:
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
我正在处理二叉树。我有 class Tree
,我想编写方法 sum()
,即 returns 树中所有数字的总和。这是我写的:
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