首页 > 其他分享 >二叉树的所有路径-力扣

二叉树的所有路径-力扣

时间:2024-06-10 19:57:33浏览次数:22  
标签:right TreeNode 路径 nullptr 力扣 二叉树 str root result

这道题目需要返回给定二叉树所有从根节点到叶子节点的路径,那么对二叉树进行深度优先搜索,遇到节点就将其加到路径中,如果这个节点的左右子节点都为空,那么它就是一个叶子节点,将这条路径加入到结果数组中。
这里将int 转换为 string 使用了 to_string()函数。

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    void dfs(TreeNode* root, vector<string> & result, string str){
        if(root == nullptr){
            return;
        }
        if(str.empty()){
            str += to_string(root->val);
        }else{
            str += "->" + to_string(root->val);
        }
        if(root->left == nullptr && root->right == nullptr){
            result.push_back(str);
            return;
        }

        dfs(root->left, result, str);
        dfs(root->right, result, str);

    }

    vector<string> binaryTreePaths(TreeNode* root) {
        vector<string> result;
        string str;
        if(root == nullptr){
            return result;
        }
        
        dfs(root, result, str);
        return result;
    }
};

标签:right,TreeNode,路径,nullptr,力扣,二叉树,str,root,result
From: https://blog.csdn.net/why_12134/article/details/139581193

相关文章

  • Leetcode 力扣114. 二叉树展开为链表 (抖音号:708231408)
    给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。示例1:输入:root=[1,2,5,3,4,null,6]输出:[1,null,2......
  • 牛客热题:矩阵的最小路径和
    ......
  • 力扣每日一题 6/10
    881.救生艇[中等]题目:给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。返回 承载所有人所需的最小船数 。示例1:输入:people=[1,2],limit=......
  • Windows程序读取不了中文路径问题
    问题描述今天调试发现win32接口GetFileAttributesW居然不支持中文路径,于是寻找解决方案,找了半天,尝试用boost的fileystem库发现能用,而且boost能跨平台!不支持中文win32接口获取文件属性,当传入参数带有中文字符时,它获取的属性就会异常DWORDGetFileAttributesW([in]LPCWSTRlpFi......
  • 字符串处理,push pop路径,组合命令
     字符串处理字符串截取、命令嵌套命令格式:%变量名:~m,n%,其中,m表示开始位置(默认开头),n表示从m位置开始向后截取的字符个数(默认到结尾),若n为负数则表示向前截取个数,作用:将命令中的某段字符截取,通过call将字符做为命令执行。@echooffsetstr1=aaaechookbbbecho初始字符......
  • 【数据结构】链式二叉树详解
    个人主页~链式二叉树基本内容~链式二叉树详解1、通过前序遍历的数组来构建二叉树2、二叉树的销毁3、二叉树节点个数4、二叉树叶子节点个数5、二叉树第k层节点个数6、二叉树查找7、前序遍历8、中序遍历9、后序遍历10、层序遍历与检查二叉树是否为完全二叉树Queue.hQue......
  • 力扣每日一题 6/9
    312.戳气球[困难]题目:有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中。现在要求你戳破所有的气球。戳破第 i 个气球,你可以获得 nums[i-1]*nums[i]*nums[i+1] 枚硬币。 这里的 i-1 和 i+1 代表和 i 相邻的两个......
  • 代码随想录算法训练营第十四天|二叉树递归遍历、迭代遍历、统一迭代
    二叉树遍历二叉树主要有两种遍历方式:深度优先遍历:先往深走,遇到叶子节点再往回走。深度优先遍历又分:前序遍历(中、左、右)中序遍历(左、中、右)后序遍历(左、右、中)广度优先遍历:一层一层的去遍历。(后面讲)递归遍历递归三要素确定递归函数的参数和返回值:确定哪些参数是递......
  • AI学习的基础理论路径
    目录一、基础阶段二、进阶阶段三、高级阶段四、涉及到的算法现在AI已经火了一段时间了,对于想入局AI的大伙,除了可以使用具体的AI产品外,还应可使用具体的模型训练自己的数据,最终形成自己的模型,最后,高阶的可开发自己的模型(需要大量物力财力做支撑),因此,无论在哪个层面,系统地......
  • 数据结构---树与二叉树
    个人介绍hellohello~,这里是code袁~......