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;
    }
};
相关推荐
qq 1374018611几秒前
医用无菌屏障系统加速老化标准解读:ASTM F1980-2016 全解析
人工智能·算法·加速老化·包装测试·astm·医疗器械包装·无菌屏障系统
wayz111 分钟前
Overlap:SLOPE(线性回归斜率)技术指标详解
算法·金融·数据分析·回归·线性回归·量化交易·特征工程
点云兔子2 分钟前
舱口检测:从点云到矩形定位的射线投影算法
opencv·算法·点云·舱口检测
小欣加油4 分钟前
leetcode169 多数元素
数据结构·c++·算法·leetcode·职场和发展
wayz1110 分钟前
Momentum:RVGI(相对活力指数)技术指标详解
算法·金融·数据分析·量化交易·特征工程
Promise微笑28 分钟前
洞察无形:红外热像仪行业标准解析与深度选型指南
网络·人工智能·算法
珠海西格电力42 分钟前
零碳园区的竞争力体现在哪些方面?
大数据·人工智能·算法·架构·能源
孬甭_1 小时前
从基础到优化:深入理解插入排序与希尔排序
数据结构·算法·排序算法
好家伙VCC1 小时前
Rust+Bioinfo:80ms极速SNP注释引擎
java·开发语言·算法·rust
啦哈拉哈1 小时前
【Python】知识点零碎学习7
python·学习·算法