leetcode

tech2025-09-06  7

目录

一、题目内容

二、解题思路

三、代码


一、题目内容

给定一个二叉树,返回所有从根节点到叶子节点的路径。

说明: 叶子节点是指没有子节点的节点。

示例:

输入:

   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
最新回复(0)