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

二叉树的所有路径

原创
作者头像
_kyle
修改2023-09-24 15:19:53
3650
修改2023-09-24 15:19:53
举报
文章被收录于专栏:kyle的专栏kyle的专栏

题目描述

难度级别:简单

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

说明:

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

示例:

代码语言:javascript
复制
输入:

   1
 /   \
2     3
 \
  5

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

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

解题思路

广度优先搜索

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

代码语言:javascript
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
  • 说明:
    • 示例:
    • 解题思路
      • 广度优先搜索
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档