面试算法-126-二叉树的所有路径

题目

给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。

叶子节点 是指没有子节点的节点。

示例 1:

输入:root = [1,2,3,null,5]

输出:["1->2->5","1->3"]

java 复制代码
class Solution {
    public List<String> binaryTreePaths(TreeNode root) {
        List<String> result = new ArrayList<>();
        LinkedList<String> path = new LinkedList<>();
        dfs(root, path, result);
        return result;

    }

    public void dfs(TreeNode root, LinkedList<String> path, List<String> result) {
        if (root == null) {
            return;
        }

        path.add(String.valueOf(root.val));

        if (root.left == null && root.right == null) {
            result.add(String.join("->", path));
        }
        dfs(root.left, path, result);
        dfs(root.right, path, result);
        path.removeLast();
    }
}
相关推荐
PAK向日葵4 分钟前
【算法导论】MT 0823笔试题题解
算法·面试
智驱力人工智能13 分钟前
安全帽检测算法如何提升工地安全管理效率
人工智能·算法·安全·边缘计算·安全帽检测·口罩检测·安全鞋检测
艾莉丝努力练剑43 分钟前
【C语言16天强化训练】从基础入门到进阶:Day 6
c语言·数据结构·学习·算法
折果1 小时前
如何在vue项目中封装自己的全局message组件?一步教会你!
前端·面试
快去睡觉~1 小时前
力扣1005:k次取反后最大化的数组和
数据结构·算法·leetcode
smilejingwei2 小时前
数据分析编程第二步: 最简单的数据分析尝试
数据库·算法·数据分析·esprocspl
前端小巷子2 小时前
Vue3的渲染秘密:从同步批处理到异步微任务
前端·vue.js·面试
草莓熊Lotso2 小时前
【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day10
c语言·开发语言·经验分享·算法·强化
张同学的IT技术日记3 小时前
详细实例说明+典型案例实现 对迭代法进行全面分析 | C++
算法
Coovally AI模型快速验证3 小时前
全景式综述|多模态目标跟踪全面解析:方法、数据、挑战与未来
人工智能·深度学习·算法·机器学习·计算机视觉·目标跟踪·无人机