Leetcode 606. 根据二叉树创建字符串
2024-09-04 14:08:52
题目链接
https://leetcode.com/problems/construct-string-from-binary-tree/description/
题目描述
你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。
空节点则用一对空括号 "()" 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。
示例 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)"
解释: 和第一个示例相似,
除了我们不能省略第一个对括号来中断输入和输出之间的一对一映射关系。
题解
代码
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public String tree2str(TreeNode t) {
StringBuilder sb = new StringBuilder();
backTrack(t, sb);
return sb.toString();
}
public void backTrack(TreeNode t, StringBuilder sb) {
if (t == null) { return ; }
sb.append(t.val);
if (t.left != null || t.right != null) {
sb.append("(");
backTrack(t.left, sb);
sb.append(")");
}
if (t.right != null) {
sb.append("(");
backTrack(t.right, sb);
sb.append(")");
}
}
}
最新文章
- python学习笔记-(十四)进程&;协程
- VC++ 对话框程序响应键盘消息的处理方法的说明(非常重要)
- AdaBoost算法实现
- Day4_计算器
- ios沙盒路径
- iOS-APP中添加启动界面
- php demo
- Smarty模板中调用PHP函数
- maven的一些常用配置
- 移植QT到ZedBoard(制作运行库镜像) 交叉编译 分类: ubuntu shell ZedBoard OpenCV 2014-11-08 18:49 219人阅读 评论(0) 收藏
- SE 2014年4月2日
- 【小技巧】C#的saveFileDialog和openFileDialog的用法总结
- php基础(二)数组
- php根据时间显示刚刚,几分钟前,今天,昨天的实现代码
- 只要三步,使用html5+js实现像素风头像生成器
- Assets.car 解压工具 cartool 使用报错 segmentation fault cartool 解决方案
- 使用Spring的@Async创建异步方法
- Python_格式化字符
- 记oracle使用expdp将数据导出到asm报错
- 数据结构与算法之PHP用邻接表、邻接矩阵实现图的广度优先遍历(BFS)