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

【leetcode刷题】T133-二叉树的所有路径

作者头像
木又AI帮
发布于 2019-08-06 09:26:40
发布于 2019-08-06 09:26:40
46200
代码可运行
举报
文章被收录于专栏:木又AI帮木又AI帮
运行总次数:0
代码可运行

二叉树类型第23篇解题报告

leetcode第257题:二叉树的所有路径

https://leetcode-cn.com/problems/binary-tree-paths/


【题目】

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
示例:
输入:
   1
 /   \
2     3
 \
  5
输出: ["1->2->5", "1->3"]
解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3

【思路】

递归遍历二叉树,存储根节点到当前节点的路径,最后遇到叶子节点时,将路径添加至结果中。

【代码】

python版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def binaryTreePaths(self, root):
        """
        :type root: TreeNode
        :rtype: List[str]
        """
        if not root:
            return []
        res = []
        self.get_path(root, [], res)
        return res

    def get_path(self, node, ls, res):
        ls2 = copy.copy(ls)
        ls2.append(node.val)
        if not node.left and not node.right:
            res.append("->".join(map(str, ls2)))
            return 
        if node.left:
            self.get_path(node.left, ls2, res)
        if node.right:
            self.get_path(node.right, ls2, res)

C++版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    vector<string> binaryTreePaths(TreeNode* root) {
        vector<string> res;
        if(!root)
            return res;
        get_path(root, "", res);
        return res;
    }

    void get_path(TreeNode* node, string str, vector<string>& res){
        string str2 = "";
        if(str == "")
            str2 = to_string(node->val);
        else
            str2 = str + "->" + to_string(node->val);
        if(!node->left && !node->right){
            res.push_back(str2);
            return;
        }
        if(node->left)
            get_path(node->left, str2, res);
        if(node->right)
            get_path(node->right, str2, res);
    }
};

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 木又AI帮 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
二叉树——257. 二叉树的所有路径
给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
向着百万年薪努力的小赵
2022/12/02
3390
二叉树——257. 二叉树的所有路径
二叉树的所有路径:不止递归,还有回溯
题目地址:https://leetcode-cn.com/problems/binary-tree-paths/
代码随想录
2021/08/10
1.4K0
打卡群刷题总结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
2760
一天一大 lee(二叉树的所有路径)难度:简单-Day20200904
题目:[1] 给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 输入: 1 / \ 2 3 \ 5 输出: ["1->2
前端小书童
2020/09/24
2200
一天一大 lee(二叉树的所有路径)难度:简单-Day20200904
二叉树:找我的所有路径?
这道题目要求从根节点到叶子的路径,所以需要前序遍历,这样才方便让父节点指向孩子节点,找到对应的路径。
代码随想录
2020/10/10
6700
二叉树:找我的所有路径?
【leetcode刷题】T119-二叉树的层次遍历 II
https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/
木又AI帮
2019/07/22
2850
二叉树的所有路径(C++)
给你一个二叉树的根节点 root,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
GeekLiHua
2025/01/21
720
二叉树的所有路径(C++)
二叉树篇二刷总结
二叉树篇,我们总共做了有关二叉树的遍历方式、求解二叉树的属性、对二叉树的修改以及构造等这几类的题型, 总结下来就是对二叉树的各种遍历方式的不同程度应用。
用户11097514
2024/05/31
940
二叉树篇二刷总结
【leetcode刷题】T122-二叉树的最小深度
https://leetcode-cn.com/problems/minimum-depth-of-binary-tree
木又AI帮
2019/07/24
3830
二叉树题目合集
用递归法 ,传入左右两棵树的根节点 ,然后比较 left.left == right.left; 以及 left.right ==right.right;
用户11097514
2024/05/30
700
【算法千题案例】⚡️每日LeetCode打卡⚡️——64. 二叉树的所有路径
给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
呆呆敲代码的小Y
2021/10/29
2510
【算法千题案例】⚡️每日LeetCode打卡⚡️——64. 二叉树的所有路径
480. 二叉树的所有路径递归
讲真我见到递归真的是害怕,也没办法讲,这也是参考的别人的答案,过两天再让我写我可能就写不出来了,这个看了看理解了一点点,就先放在这里吧,也许写的多了就懂了也不一定:
和蔼的zhxing
2018/09/04
4760
二叉树刷题总结:二叉树的属性
这就需要去判断根节点下左子树与右子树里侧和外侧是否相等。比较的方法是拿左子树的 “左-右-中” 节点和右子树的“右-左-中”为顺序的节点做比较。
HelloWorld杰少
2022/08/04
3470
二叉树刷题总结:二叉树的属性
【leetcode刷题】T124-路径总和 II
https://leetcode-cn.com/problems/path-sum-ii/
木又AI帮
2019/07/30
3310
二叉树的所有路径
题意 给一棵二叉树,找出从根节点到叶子节点的所有路径。 样例 给出下面这棵二叉树: 1 / \ 2 3 \ 5 所有根到叶子的路径为: [ "1->2->5", "1->3" ] 思路 如某一个节点,没有子节点则将本身的值加入到集合中,如果有子节点,则将在子节点的路径之前加上当前节点。 代码实现 /** * Definition of TreeNode: * public class TreeNode { * public int val; * pu
一份执着✘
2018/06/04
6310
LeetCode 257. 二叉树的所有路径(DFS)
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tree-paths 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Michael阿明
2021/02/20
2270
LeetCode 257. 二叉树的所有路径(DFS)
【二叉树深搜】二叉搜索树中第K小的元素 && 二叉树的所有路径
​ 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。
利刃大大
2025/02/03
850
【二叉树深搜】二叉搜索树中第K小的元素 && 二叉树的所有路径
leetcode树之二叉树的所有路径
这里采用递归的思想,设计了solve方法,方法有个集合类型的参数用于收集路径,另外还有一个参数用于表示路径的前缀;每次执行solve方法都将当前节点的val追加在路径前缀,在节点为叶子节点时,将前缀添加到result中并返回;若不为叶子节点则将 ->拼接到路径前缀中,递归其左右子节点。
code4it
2020/09/28
2560
leetcode树之二叉树的所有路径
【leetcode刷题】T117-二叉树的最大深度
https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/
木又AI帮
2019/07/17
4740
相关推荐
二叉树——257. 二叉树的所有路径
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验