目录
一、题目内容
二、解题思路
三、代码
一、题目内容
给定一个二叉树,返回所有从根节点到叶子节点的路径。
说明: 叶子节点是指没有子节点的节点。
示例:
输入:
1 / \ 2 3 \ 5
输出: ["1->2->5", "1->3"]
解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3
二、解题思路
回溯+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):
paths = []
if root is None:
return []
def dfs(root, path):
if root.left is None and root.right is None:
paths.append(path)
return
if root.left is not None:
org_path = path
path += "->" + str(root.left.val)
dfs(root.left, path)
path = org_path
if root.right is not None:
org_path = path
path += "->" + str(root.right.val)
dfs(root.right, path)
path = org_path
dfs(root, str(root.val))
return paths
if __name__ == '__main__':
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(5)
s = Solution()
ans = s.binaryTreePaths(root=root)
print(ans)
悲恋花丶无心之人
认证博客专家
深度学习
神经网络
Pytorch
计算机视觉在读研究生,熟悉Pytorch,MXNet,TensorFlow,Keras等深度学习框架,主要涉及的领域有目标检测,语义分割,超分辨率重建,行人重识别等。个人GitHub网址为:https://github.com/nickhuang1996