Python程序:查找树中所有元素的和


假设我们有一个包含一些值的二叉树,我们需要找到树中所有值的总和。

因此,如果输入类似于

则输出将为 14

为了解决这个问题,我们将遵循以下步骤:

  • 定义一个函数 recurse()。它将接收节点作为参数。

  • val := 节点的值

  • 如果节点的左子节点不为空,则

    • val := val + recurse(节点的左子节点)

  • 如果节点的右子节点不为空,则

    • val := val + recurse(节点的右子节点)

  • 返回 val

  • 从主方法中执行以下操作:

  • 如果根节点不为零,则

    • 返回 0

  • 返回 recurse(根节点)

让我们看看下面的实现,以便更好地理解:

示例

 在线演示

class TreeNode:
   def __init__(self, data, left = None, right = None):
      self.val = data
      self.left = left
      self.right = right
class Solution:
   def recurse(self, node):
      val = node.val
      if node.left:
         val += self.recurse(node.left)
      if node.right:
         val += self.recurse(node.right)
      return val
   def solve(self, root):
      if not root:
         return 0
      return self.recurse(root)
ob = Solution()
root = TreeNode(2)
root.right = TreeNode(4)
root.right.left = TreeNode(3)
root.right.right = TreeNode(5)
print(ob.solve(root))

输入

root = TreeNode(2)
root.right = TreeNode(4)
root.right.left = TreeNode(3)
root.right.right = TreeNode(5)

输出

14

更新于: 2020年10月21日

808 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告