Leetcode606.Construct String from Binary Tree根据二叉树创建字符串
2024-08-27 13:34:36
你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。
空节点则用一对空括号 "()" 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。
示例 1:
输入:
二叉树: [1,2,3,4]
1
/ \
2 3
/
4
输出: "1(2(4))(3)"
解释: 原本将是“1(2(4)())(3())”, 在你省略所有不必要的空括号对之后, 它将是“1(2(4))(3)”。
示例 2:
输入:
二叉树: [1,2,3,null,4]
1
/ \
2 3
\ 4
输出: "1(2()(4))(3)" 解释: 和第一个示例相似, 除了我们不能省略第一个对括号来中断输入和输出之间的一对一映射关系。
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
class Solution {
public:
string res = "";
string tree2str(TreeNode* t) {
if (t == NULL)
return res;
GetAns(t);
return res;
}
void GetAns(TreeNode* root)
{
if(root != NULL)
res += to_string(root->val);
if (root != NULL && (root->right != NULL || root->left != NULL))
{
res += '(';
GetAns(root->left);
res += ')';
}
if (root != NULL && root->right != NULL)
{
res += '(';
GetAns(root->right);
res += ')';
}
}
};
最新文章
- Shader实例:NGUI图集中的UISprite正确使用Shader的方法
- Linq学习笔记(转)
- SGU 106	The equation
- 浅析WINFORM工具条的重用实现
- 背景透明文字不透明的最佳方法兼容IE(以背景黑色透明度0.5为例)
- AngularJs项目
- c#常用工具类:文件和二进制转换
- Troubleshooting:lvm调整分区时“Error parsing metadata for VG fedora”的解决
- MAC上更攺jenkins默认安装目录
- Java调用IDL出错处理
- 钉钉 机器人接入 自定义webhook
- 框架应用 : Spring开发详述
- python小程序打包
- caffemodel模型
- js call() 笔记
- Java窗体简单登入案例(附带源码)
- sock5客户端解密数据流
- Beanutils工具常用方法
- 关于向后台请求数据(get请求,无参数传递),返回html代码(实际需要返回的是json数据)的解决方案
- windows版本 rac 报错信息