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;
    }
};
相关推荐
生成论实验室8 分钟前
《事件关系阴阳博弈动力学:识势应势之道》第十一篇:双脑协同——WOLM与大模型的共生智能
人工智能·算法·语言模型·架构·创业创新
上弦月-编程26 分钟前
高效编程利器:转移表技术解析
c语言·开发语言·数据结构·算法·排序算法
薇茗26 分钟前
【初阶数据结构】 左右逢源的分支诗律 二叉树2
c语言·数据结构·算法·二叉树
AZaLEan__29 分钟前
算法考核题解
算法
MediaTea41 分钟前
AI 术语通俗词典:ID3 算法
人工智能·算法
Morwit42 分钟前
【力扣hot100】 221. 最大正方形
前端·算法·leetcode
呃呃本1 小时前
算法题(矩阵)
线性代数·算法·矩阵
呃呃本1 小时前
算法题(普通数组、矩阵)
线性代数·算法·矩阵
计算机安禾1 小时前
【计算机网络】第11篇:链路状态路由协议——Dijkstra算法与OSPF的分区架构
计算机网络·算法·架构
珂朵莉MM1 小时前
第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第二赛季优化题--遗传算法
人工智能·算法