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;
    }
};
相关推荐
weixin_413063215 分钟前
比较阅读理解opencv 和 LuminanceHDR中 色调映射Drago算法
opencv·算法·计算机视觉·hdr·色调映射
自我意识的多元宇宙5 分钟前
【数据结构】图----图的应用(拓扑排序)
数据结构·算法
itzixiao9 分钟前
L1-055 谁是赢家(10 分)[java][python]
java·python·算法
ghie909011 分钟前
运用强跟踪无迹卡尔曼滤波来实现捷联惯导的初始对准
算法
菜菜的顾清寒20 分钟前
力扣HOT100(21)相交链表
算法·leetcode·链表
七颗糖很甜26 分钟前
开源雷达NEXRAD Level 3 数据完整获取与 Python 处理教程
大数据·python·算法
JXNL@28 分钟前
TDK DPX105950DT 射频双工器全解析:从原理、参数到应用设计
算法
池塘的蜗牛29 分钟前
FMCW(2)-速度
算法
菜菜的顾清寒31 分钟前
力扣hot100(21)搜索二维矩阵 II
算法·leetcode·职场和发展
踩坑记录40 分钟前
leetcode 70. 爬楼梯 easy 动态规划 斐波那契数列
leetcode·动态规划