二叉树从根节点返回叶子节点所有路径python
时间: 2023-05-30 18:05:59 浏览: 89
以下是一个递归解决方案,它可以返回从根节点到叶子节点的所有路径:
```python
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def binaryTreePaths(root):
"""
:type root: TreeNode
:rtype: List[str]
"""
if not root:
return []
if not root.left and not root.right:
return [str(root.val)]
paths = []
if root.left:
for path in binaryTreePaths(root.left):
paths.append(str(root.val) + "->" + path)
if root.right:
for path in binaryTreePaths(root.right):
paths.append(str(root.val) + "->" + path)
return paths
```
解释:
- 如果树为空,则返回空列表。
- 如果当前节点是叶子节点,则返回该节点的值的列表。
- 否则,递归遍历左子树和右子树,并将根节点的值添加到每个路径的开头。最后将所有路径合并为一个列表并返回。