Leetcode 257. Binary Tree Paths

Problem

Given the root of a binary tree, return all root-to-leaf paths in any order.

A leaf is a node with no children.

Algorithm

Use dfs search to save the path.

Code

python3 复制代码
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def binaryTreePaths(self, root: Optional[TreeNode]) -> List[str]:
        if not root:
            return []

        if not root.left and not root.right:
            return [str(root.val)]
        
        ans = []
        save = []
        def dfs(node: TreeNode, depth):
            if not node.left and not node.right:
                s = ""
                for i in range(depth):
                    s += str(save[i]) + "->"
                ans.append(s + str(node.val))
                return
            if len(save) <= depth:
                save.append(node.val)
            else:
                save[depth] = node.val
            if node.left:
                dfs(node.left, depth+1)
            if node.right:
                dfs(node.right, depth+1)

        dfs(root, 0)
        return ans
相关推荐
浮生如梦_29 分钟前
C#Halcon深度学习预热与否的运行时间测试
图像处理·人工智能·深度学习·算法·计算机视觉·c#·视觉检测
TANGLONG2221 小时前
【C++】穿越时光隧道,拾贝史海遗珍,轻启C++入门之钥,解锁程序之奥秘(首卷)
java·c语言·数据结构·c++·redis·python·算法
星迹日1 小时前
数据结构:时间复杂度和空间复杂度
数据结构·算法·时间空间复杂度
走在考研路上1 小时前
力扣编程从0-1
python·算法·leetcode
LeeZhao@1 小时前
【项目】基于趋动云平台的Stable Diffusion开发
面试·职场和发展·stable diffusion·aigc
武昌库里写JAVA1 小时前
Springboot 升级带来的Swagger异常
数据结构·vue.js·spring boot·算法·课程设计
dundunmm2 小时前
【论文阅读】SCGC : Self-supervised contrastive graph clustering
论文阅读·人工智能·算法·数据挖掘·聚类·深度聚类·图聚类
码农老起2 小时前
深入解析希尔排序:原理、实现与优化
数据结构·算法·排序算法
庞传奇3 小时前
【LC】191. 位1的个数
java·数据结构·算法·leetcode
Lenyiin4 小时前
02.01、移除重复节点
c++·算法·leetcode