【问题标题】:I have troubles with implementing recursion in this task我在这个任务中实现递归时遇到了麻烦
【发布时间】:2020-10-05 17:58:27
【问题描述】:

我正在处理二叉树。我有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

但它不起作用,我被困在这里。我应该如何在这个任务中实现递归?

【问题讨论】:

    标签: python oop recursion binary-tree


    【解决方案1】:

    您的代码失败,因为您的初始 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
    

    【讨论】:

      猜你喜欢
      • 2021-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-08
      • 2013-10-30
      • 2021-06-06
      • 2017-08-25
      • 2013-11-11
      相关资源
      最近更新 更多