leetcode 257. 二叉树的所有路径(Binary Tree Paths)

news/2025/2/27 10:31:57

目录

  • 题目描述:
  • 示例:
  • 解法:

题目描述:

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

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

示例:

    输入:

       1
     /   \
    2     3
     \
      5

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

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

解法:

/**
 * 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:
    string toString(long long val){
        string res = "";
        if(val == 0){
            return "0";
        }else{
            bool neg = false;
            if(val < 0){
                neg = true;
                val = -val;
            }
            while(val){
                res = char('0' + val%10) + res;
                val /= 10;
            }
            if(neg){
                res = '-' + res;
            }
            return res;
        }
    }
    
    string toString(vector<int>& lst){
        string res = "";
        if(lst.empty()){
            return res;
        }else{
            for(int val : lst){
                res += "->" + toString(val);
            }
            return res.substr(2);
        }
        
    }
    
    void binaryTreePaths(TreeNode* root, vector<string>& res, vector<int>& cur){
        if(root){
            cur.push_back(root->val);
            if(!root->left && !root->right){
                res.push_back(toString(cur));
            }else{
                if(root->left){
                    binaryTreePaths(root->left, res, cur);
                }
                if(root->right){
                    binaryTreePaths(root->right, res, cur);
                }
            }
            cur.pop_back();
        }
    }
    
    vector<string> binaryTreePaths(TreeNode* root) {
        vector<string> res;
        vector<int> cur;
        binaryTreePaths(root, res, cur);
        return res;
    }
};

转载于:https://www.cnblogs.com/zhanzq/p/10571712.html


http://www.niftyadmin.cn/n/3142459.html

相关文章

谈谈我理解的敏捷开发

2017-07-25 20:30 by 许大虾, 13847 阅读, 3 评论, 收藏, 编辑 “敏捷开发” 几乎成了互联网家户喻晓的一个热门话题。每个人都在聊敏捷、Scrum、XP。 我对“敏捷”的认识还算是在一个正在探索的阶段。网上有非常多的资料&#xff0c;五花八门&#xff0c;对于初学者来说无形之…

老是报Uncaught Error: [$injector:modulerr]错误解决思路

2019独角兽企业重金招聘Python工程师标准>>> function loadScript() { var script document.createElement(script), head document.getElementsByTagName(head)\[0\]; script.type text/javascript; script.charset UTF-8; script.src urls\[num\]; if (scrip…

第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛 C 上进的凡凡

第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛 C 上进的凡凡 题目描述&#xff1a; 凡凡是一个上进的人&#xff0c;他的人生没有下坡路&#xff0c;他也讨厌带有”下坡路“的东西。 所以&#xff0c;对于凡凡来说&#xff0c;只有非降序的数组才是nice的&#xff08;如&…

Java中的静态方法能否被重写

能重写&#xff0c;但没有多态&#xff1a;https://blog.csdn.net/ghgzczxcvxv/article/details/43966243转载于:https://www.cnblogs.com/vhyc/p/9163781.html

第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛 I 买花

第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛 I 买花 题目描述&#xff1a; 情人节马上要到了&#xff0c;阳阳想送出n朵花给喜欢的妹妹&#xff0c;他打算提前开始买。但是&#xff0c;因为他有强迫症&#xff0c;所有的花要分k天买&#xff08;k>1&#xff0c;即不能一天…

2018-2019~3 20165107 《网络对抗技术》Exp2 后门原理与实践

20165107 《网络对抗技术》Exp2 后门原理与实践 实验内容 (1)使用netcat获取主机操作Shell&#xff0c;cron启动 (2)使用socat获取主机操作Shell, 任务计划启动 (3)使用MSF meterpreter&#xff08;或其他软件&#xff09;生成可执行文件&#xff0c;利用ncat或socat传送到主机…

bzoj 2028(会场预约)

题目描述 PP大厦有一间空的礼堂&#xff0c;可以为企业或者单位提供会议场地。 这些会议中的大多数都需要连续几天的时间&#xff08;个别的可能只需要一天&#xff09;&#xff0c;不过场地只有一个&#xff0c;所以不同的会议的时间申请不能够冲突。也就是说&#xff0c;前一…

window下Tomcat7内存设置

https://blog.csdn.net/nnsword/article/details/50617554转载于:https://www.cnblogs.com/Demetris/p/9168204.html