前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >二叉树的所有路径

二叉树的所有路径

原创
作者头像
_kyle
修改于 2023-09-24 07:19:53
修改于 2023-09-24 07:19:53
38900
代码可运行
举报
文章被收录于专栏:kyle的专栏kyle的专栏
运行总次数:0
代码可运行

题目描述

难度级别:简单

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

说明:

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

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
输入:

   1
 /   \
2     3
 \
  5

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

解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3

解题思路

广度优先搜索

创建非子节点队列queue,与非子节点路径队列path。当队列queue中存在值时,依次将queue,path与出列,若当前元素无左右节点,则说明为子节点,则直接向输出队列中添加路径值,若不是,则将存在的节点添加至队列尾部,路径也拼接至路径队列尾部。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const binaryTreePaths = function(root) {
    if (!root) return []

    const res_path = []
    const queue = [root]
    const path = [root.val.toString()]

    while(queue.length) {
        const current_node = queue.shift()
        const current_path = path.shift()

        if (!current_node.left && !current_node.right) {
            res_path.push(current_path)
        }else{
            if (current_node.left) {
                queue.push(current_node.left)
                path.push(current_path+"->"+current_node.left.val.toString())
            }
            if (current_node.right) {
                queue.push(current_node.right)
                path.push(current_path+"->"+current_node.right.val.toString())
            }
        }
    }

    return res_path
};

题目来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-anagram/

0人点赞

算法

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一天一大 lee(二叉树的所有路径)难度:简单-Day20200904
题目:[1] 给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 输入: 1 / \ 2 3 \ 5 输出: ["1->2
前端小书童
2020/09/24
2180
一天一大 lee(二叉树的所有路径)难度:简单-Day20200904
打卡群刷题总结0602——二叉树的所有路径
链接:https://leetcode-cn.com/problems/binary-tree-paths
木又AI帮
2023/03/07
1690
打卡群刷题总结0602——二叉树的所有路径
LeetCode102|二叉树的所有路径
之前自己是单独写过JDK源码分析的,具体见下文的链接内容,文章汇总【JDK源码分析部分】,JDK相对于java编程人员是再熟悉不过了,随时可见,当初自己之所以分析JDK源码是因为工作需要这部分内容的沉淀,所以利用了一部分时间,慢慢输出了这么多内容,帮助了自己很多,自己在那其中也深深感到JDK源码的重要性
码农王同学
2020/10/27
2750
二叉树的所有路径(C++)
给你一个二叉树的根节点 root,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
GeekLiHua
2025/01/21
720
二叉树的所有路径(C++)
二叉树的所有路径
题意 给一棵二叉树,找出从根节点到叶子节点的所有路径。 样例 给出下面这棵二叉树: 1 / \ 2 3 \ 5 所有根到叶子的路径为: [ "1->2->5", "1->3" ] 思路 如某一个节点,没有子节点则将本身的值加入到集合中,如果有子节点,则将在子节点的路径之前加上当前节点。 代码实现 /** * Definition of TreeNode: * public class TreeNode { * public int val; * pu
一份执着✘
2018/06/04
6280
二叉树的所有路径
深度优先遍历二叉树,将路径节点拼接字符串,遍历到根节点之后将拼接的字符串推入目标数组,首先如果没有节点则直接返回一个空数组,之后定义目标数组target,如果没有定义节点则返回空,如果没有左孩子以及右孩子即叶子节点,则将缓存字符串推入数组并返回结束递归,如果存在左孩子,则向左递归并将左孩子的节点值拼接到字符串并传递,如果存在右孩子,则向右递归并将右孩子节点的值拼接到字符串并传递,之后启动递归,注意题目要求是字符串而不是数字,所以需要将启动时的节点值转为字符串,最后返回目标数组即可。
WindRunnerMax
2020/09/07
3640
【二叉树深搜】二叉搜索树中第K小的元素 && 二叉树的所有路径
​ 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。
利刃大大
2025/02/03
800
【二叉树深搜】二叉搜索树中第K小的元素 && 二叉树的所有路径
【算法千题案例】⚡️每日LeetCode打卡⚡️——64. 二叉树的所有路径
给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
呆呆敲代码的小Y
2021/10/29
2500
【算法千题案例】⚡️每日LeetCode打卡⚡️——64. 二叉树的所有路径
【算法专栏】从上到下打印二叉树
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
ConardLi
2019/05/23
4470
Leetcod刷题(17)——257. 二叉树的所有路径
思路分析: 1.叶子节点时候,路径才算走完,所以才会添加到List集合中,那么条件就是左右子树都是空的时候 2.之前想用StringBuffer,结果怎么样都不对,发现是个暗坑,写法如下:
老马的编程之旅
2022/06/22
1490
【LeetCode 104.二叉树的最大深度】双解法:递归+非递归
递归的写法非常直观。对于一棵二叉树来说,它的高度等于左右子树的高度最大值,加上 1。
心谭博客
2020/04/21
6460
JS刷算法题:二叉树
这道题目起源于一个非常搞笑的事件:据说大名鼎鼎的Mac软件包管理工具Homebrew的作者,因为做不出这道在leetcode上难度为easy的题,被谷歌公司拒了。。。
啦啦啦321
2020/02/18
7190
JS刷算法题:二叉树
关于js的二叉树
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例:给定二叉树 [3,9,20,null,null,15,7] 最大深度是 3
epoos
2022/06/06
7980
​LeetCode刷题实战257:二叉树的所有路径
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2021/05/28
2230
​LeetCode刷题实战257:二叉树的所有路径
二叉树的层次遍历 II
给定一个二叉树,返回其节点值自底向上的层次遍历。 即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历。
WindRunnerMax
2020/09/08
6510
【leetcode刷题】T133-二叉树的所有路径
https://leetcode-cn.com/problems/binary-tree-paths/
木又AI帮
2019/08/06
4600
二叉树:找我的所有路径?
这道题目要求从根节点到叶子的路径,所以需要前序遍历,这样才方便让父节点指向孩子节点,找到对应的路径。
代码随想录
2020/10/10
6700
二叉树:找我的所有路径?
刷题训练之深搜(DFS)-----(二叉树的所有路径,全排列,子集)
给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
用户11369558
2024/11/20
1130
刷题训练之深搜(DFS)-----(二叉树的所有路径,全排列,子集)
【算法专题】二叉树中的深搜(DFS)
深度优先遍历(DFS,全称为 Depth First Traversal),是我们树或者图这样的数据结构中常用的⼀种遍历算法。这个算法会尽可能深的搜索树或者图的分支,直到一条路径上的所有节点都被遍历完毕,然后再回溯到上一层,继续找⼀条路遍历。
YoungMLet
2024/03/01
2750
二叉树——257. 二叉树的所有路径
给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
向着百万年薪努力的小赵
2022/12/02
3340
二叉树——257. 二叉树的所有路径
推荐阅读
相关推荐
一天一大 lee(二叉树的所有路径)难度:简单-Day20200904
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文