生成打印二叉树从根结点到叶子结点的所有路径的代码
时间: 2023-11-25 09:04:27 浏览: 75
数据结构大作业求二叉树上结点的路径.zip
5星 · 资源好评率100%
以下是生成打印二叉树从根结点到叶子结点的所有路径的 Python 代码:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def binaryTreePaths(root):
if not root:
return []
paths = []
dfs(root, "", paths)
return paths
def dfs(node, path, paths):
if not node.left and not node.right:
paths.append(path + str(node.val))
return
if node.left:
dfs(node.left, path + str(node.val) + "->", paths)
if node.right:
dfs(node.right, path + str(node.val) + "->", paths)
```
这里使用了深度优先搜索(DFS)的思想,对于每个节点,如果它是叶子节点,则将路径添加到结果列表中。否则,递归搜索它的左右子树,并在路径中添加当前节点的值。最终得到的结果列表即为从根结点到叶子结点的所有路径。
阅读全文