以下是使用Python解决LeetCode#257二叉树的所有路径问题的示例代码:
# 定义二叉树节点类
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def binaryTreePaths(root):
def dfs(node, path):
# 到达叶节点时,将路径添加到结果列表中
if not node.left and not node.right:
result.append(path + str(node.val))
# 递归遍历左子树
if node.left:
dfs(node.left, path + str(node.val) + '->')
# 递归遍历右子树
if node.right:
dfs(node.right, path + str(node.val) + '->')
if not root:
return []
result = []
dfs(root, '')
return result
# 创建二叉树
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.right = TreeNode(5)
# 调用函数并打印结果
print(binaryTreePaths(root))
运行结果:
['1->2->5', '1->3']
提交结果:
- 解答正确
- 执行用时:28 ms, 在所有 Python3 提交中击败了98.20%的用户
- 内存消耗:14.9 MB, 在所有 Python3 提交中击败了81.01%的用户