题目描述:给定一个二叉树,返回所有从根节点到叶子节点的路径。
说明: 叶子节点是指没有子节点的节点。
解题思路:dfs+回溯
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def binaryTreePaths(self, root: TreeNode) -> List[str]:
ans = []
def traceback(root, path):
if root is None: return
path.append(str(root.val))
traceback(root.left, path)
traceback(root.right, path)
if root.left is None and root.right is None:
ans.append('->'.join(path))
path.pop()
if root is None: return []
traceback(root, [])
return ans