您的位置:首页 > 其它

LeetCode 606 Construct String from Binary Tree

2017-07-24 22:54 351 查看
题目大意为给一个二叉树,求它的先序遍历生成的字符串,子节点放在括号中。

通过观察可以得到规律

子节点不为空,则左子节点的括号一定有。
右子节点不为空,则右子节点的括号一定有。

所以可以通过dfs先序遍历,加上上述的判断条件写出函数。

题目链接

代码如下:

class Solution {
public:
string ans;
string getString(const int n)
{
stringstream newstr;
newstr << n;
return newstr.str();
}

void dfs(TreeNode* node) {
ans += getString(node->val);
if (node->left || node->right) {
ans += "(";
if (node->left)
dfs(node->left);
ans += ")";
if (node->right) {
ans += "(";
dfs(node->right);
ans += ")";
}
}
}
string tree2str(TreeNode* t) {
if (t != NULL)
dfs(t);
return ans;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: