我在这个任务中实现递归时遇到了麻烦

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