请编写一个程序,实现输出一棵二叉树中每个叶子结点到根结点的路径。每棵二叉树采用先序遍历的方式输入,其中用’#'表示空结点。 1、输出的每条路径换行输出 2、每条路径中的结点用一个空格符分开
时间: 2024-12-11 22:28:10 浏览: 65
为了实现这个功能,我们可以使用递归的方式来遍历二叉树并跟踪路径。以下是用Python编写的示例程序:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def print_leaf_paths(root):
if not root:
return
elif not root.left and not root.right: # 判断是否是叶子节点
path = [str(root.val)]
print(' '.join(path))
else:
print_leaf_paths(root.left)
print_leaf_paths(root.right)
# 示例输入,使用先序遍历构建二叉树
root = TreeNode('#', TreeNode(1), TreeNode('#', TreeNode(2), TreeNode('#')))
print_leaf_paths(root)
```
在这个程序中,`TreeNode` 类代表二叉树的节点,`print_leaf_paths` 函数接收树的根节点作为参数。如果遇到空节点(非叶子节点),则继续递归左子树和右子树;如果是叶子节点,则记录当前节点值,并打印出该路径。
运行此程序会输出每个叶子节点到根节点的路径,每个路径中的节点由空格分隔。
阅读全文
相关推荐


















