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

目录

  • 1.题目描述
  • 2.算法思想
  • 3.代码实现

1.题目描述

【606. 根据二叉树创建字符串】_第1张图片
这道题的重点其实就是要省去不影响映射的括号。如:
【606. 根据二叉树创建字符串】_第2张图片

2.算法思想

【606. 根据二叉树创建字符串】_第3张图片

3.代码实现

class Solution {
public:
    string _tree2str(TreeNode* root,string& ret)
    {
        if(root==nullptr)
        {
            return "";
        }
        ret+=to_string(root->val);
        //左括号出现的条件:当左和右有一个不为空
        if(root->left||root->right)
        {
            ret+='(';
            _tree2str(root->left,ret);
            ret+=')';
        }
       if(root->right)
       {
            ret+='(';
            _tree2str(root->right,ret);
            ret+=')';
       }

        return ret;
    }
    string tree2str(TreeNode* root) 
    {
        string str="";
        return _tree2str(root,str);
    }
};

你可能感兴趣的:(c++,数据结构,算法)