编程输出二叉树中从每个叶子结点到根结点的路径
时间: 2023-12-29 14:04:57 浏览: 87
以下是一个示例代码,实现了输出二叉树中从每个叶子结点到根结点的路径。假设二叉树的节点结构为TreeNode,包含左右子节点和节点值属性,可以使用递归方法来遍历二叉树并输出叶子结点到根结点的路径:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def print_paths(root, path=[]):
# 如果节点为空,直接返回
if not root:
return
# 将当前节点值添加到路径列表中
path.append(root.val)
# 如果为叶子节点,输出路径
if not root.left and not root.right:
print(path[::-1])
# 递归遍历左子树
if root.left:
print_paths(root.left, path)
# 递归遍历右子树
if root.right:
print_paths(root.right, path)
# 弹出当前节点,回溯到上一层
path.pop()
# 测试代码
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
root.right.left = TreeNode(6)
root.right.right = TreeNode(7)
print_paths(root)
```
上述代码输出结果为:
```
[4, 2, 1]
[5, 2, 1]
[6, 3, 1]
[7, 3, 1]
```
其中每个列表表示从叶子节点到根节点的路径。
阅读全文