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
广告