python二叉树返回从根节点到叶子结点的路径
时间: 2024-05-09 14:20:48 浏览: 90
以下是Python实现的二叉树返回从根节点到叶子结点的路径的代码:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def binary_tree_paths(root: TreeNode) -> List[str]:
if not root:
return []
res = []
dfs(root, [], res)
return res
def dfs(node: TreeNode, path: List[int], res: List[str]):
if not node:
return
path.append(node.val)
if not node.left and not node.right:
res.append("->".join(str(x) for x in path))
dfs(node.left, path, res)
dfs(node.right, path, res)
path.pop()
```
这里使用深度优先搜索(DFS)来遍历树,每当遍历到叶子节点时,将当前路径加入结果列表中。在遍历过程中,需要维护当前遍历的路径,将其作为参数传递给DFS函数。当遍历到一个节点时,将其值加入路径中,并继续遍历其左右子节点。当遍历完一个节点的左右子节点后,需要将该节点从路径中弹出,以便继续遍历其他分支。最后,返回结果列表即可。
阅读全文