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

一、题目描述

在这里插入图片描述

二、解题思路

递归进行,首先加入当前传入的头节点,然后如果左子树不空,sln加上被括号包围的左子树返回结果,否则sln加上一对空括号;如果右子树不空,sln加上被括号包围的右子树返回结果。
to_string(T val):

  • 将数值转化为字符串。返回对应的字符串。
  • 函数原型
    • string to_string (int val);
    • string to_string (long val);
    • string to_string (long long val);
    • string to_string (unsigned val);
    • string to_string (unsigned long val);
    • string to_string (unsigned long long val);
    • string to_string (float val);
    • string to_string (double val);
    • string to_string (long double val);

三、解题代码

class Solution {
public:
    string tree2str(TreeNode* t) {
        string sln = "";
        if(t){
            sln += to_string(t->val);
            if(!(!t->left && !t->right)){
                sln += t->left ? "(" + tree2str(t->left) + ")" : "()";
                if(t->right)    sln += "(" + tree2str(t->right) + ")";
            }
        }
        return sln;
    }
};

四、运行结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44587168/article/details/105891816