LeetCode 606.根据二叉树创建字符串

LeetCode 606.根据二叉树创建字符串

思路🧐:

根据示例发现,当结点左右都为空时可以省略括号结点仅左为空时,不能省略括号,因为分不清到底是左为空还是右为空,所以我们在解题时需要判断结点的左右情况。

题目要求前序遍历 (根左右),我们可以用to_string将val转为字符 传并赋给str,。然后开始走左边,这里要判断一下,如果左和右有一个不为空 那么我们就需要加上括号 ,当走到空或者函数走完时就返回字符串回到上一次递归,开始遍历右边,右边只需要判断是否为空,不为空就进行递归。当遍历完该树后,str就是前序字符串。

代码🔎:

c++ 复制代码
class Solution {
public:
    string tree2str(TreeNode* root) {
        string str;
        if(root == nullptr) //为空就返回字符串
            return str;
        
        str += to_string(root->val); //加上值
        

        if(root->left || root->right) //左子树要两边都不为空才不用写
        {
            str += '(';
            str += tree2str(root->left);
            str += ')';
        }

        if(root->right) //右子树只用判断自己
        {
            str += '(';
            str += tree2str(root->right);
            str += ')';
        }

        return str;
    }
};
相关推荐
徐小夕@趣谈前端4 分钟前
Web文档的“Office时刻“:jitword共建版2.0发布!让浏览器变成本地生产力
前端·数据结构·vue.js·算法·开源·编辑器·es6
问好眼8 分钟前
【信息学奥赛一本通】1275:【例9.19】乘积最大
c++·算法·动态规划·信息学奥赛
Daydream.V26 分钟前
逻辑回归实例问题解决(LogisticRegression)
算法·机器学习·逻辑回归
代码无bug抓狂人27 分钟前
C语言之表达式括号匹配
c语言·开发语言·算法
不穿格子的程序员34 分钟前
从零开始写算法——普通数组篇:缺失的第一个正数
算法·leetcode·哈希算法
Nebula_g41 分钟前
线程进阶: 无人机自动防空平台开发教程(更新)
java·开发语言·数据结构·学习·算法·无人机
rit84324991 小时前
基于MATLAB的环境障碍模型构建与蚁群算法路径规划实现
开发语言·算法·matlab
hoiii1871 小时前
MATLAB SGM(半全局匹配)算法实现
前端·算法·matlab
独自破碎E1 小时前
大整数哈希
算法·哈希算法
纤纡.1 小时前
逻辑回归实战进阶:交叉验证与采样技术破解数据痛点(二)
算法·机器学习·逻辑回归