Python二叉树遍历求和
时间: 2024-10-12 13:18:00 浏览: 36
在Python中,二叉树遍历有三种基本方式:前序遍历(根节点 -> 左子树 -> 右子树)、中序遍历(左子树 -> 根节点 -> 右子树)和后序遍历(左子树 -> 右子树 -> 根节点)。如果需要计算每个节点值的和,无论哪种遍历方式,都可以在访问到节点时将节点值累加到总和上。
以下是使用递归方式实现的二叉树前序、中序和后序遍历求和的例子:
```python
# 定义二叉树节点
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
# 前序遍历求和
def pre_order_sum(root):
if root is None:
return 0
else:
return root.val + pre_order_sum(root.left) + pre_order_sum(root.right)
# 中序遍历求和
def in_order_sum(root):
if root is None:
return 0
else:
return in_order_sum(root.left) + root.val + in_order_sum(root.right)
# 后序遍历求和
def post_order_sum(root):
if root is None:
return 0
else:
return post_order_sum(root.left) + post_order_sum(root.right) + root.val
```
阅读全文