一、题目描述
二、解题思路
递归进行,首先加入当前传入的头节点,然后如果左子树不空,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;
}
};