题目链接

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(")");
}
}
}

最新文章

  1. python学习笔记-(十四)进程&协程
  2. VC++ 对话框程序响应键盘消息的处理方法的说明(非常重要)
  3. AdaBoost算法实现
  4. Day4_计算器
  5. ios沙盒路径
  6. iOS-APP中添加启动界面
  7. php demo
  8. Smarty模板中调用PHP函数
  9. maven的一些常用配置
  10. 移植QT到ZedBoard(制作运行库镜像) 交叉编译 分类: ubuntu shell ZedBoard OpenCV 2014-11-08 18:49 219人阅读 评论(0) 收藏
  11. SE 2014年4月2日
  12. 【小技巧】C#的saveFileDialog和openFileDialog的用法总结
  13. php基础(二)数组
  14. php根据时间显示刚刚,几分钟前,今天,昨天的实现代码
  15. 只要三步,使用html5+js实现像素风头像生成器
  16. Assets.car 解压工具 cartool 使用报错 segmentation fault cartool 解决方案
  17. 使用Spring的@Async创建异步方法
  18. Python_格式化字符
  19. 记oracle使用expdp将数据导出到asm报错
  20. 数据结构与算法之PHP用邻接表、邻接矩阵实现图的广度优先遍历(BFS)

热门文章

  1. 微信小程序电商实战-商品列表流式布局
  2. svg保存为图片下载到本地
  3. css多行文本溢出显示省略号
  4. <Android 基础(十七)> ViewPager介绍
  5. centreon公司推出的check plugin pack
  6. java:数据库操作JDBC
  7. Java实习问题记录
  8. IOS 制作版本新特性
  9. C#后台unxi时间戳转换为前台JS时间的方法
  10. Codeblocks的常用Debug快捷键