【根据二叉树创建字符串(606-java)】
2023-09-27 14:29:28 时间
根据二叉树创建字符串(606-java)
你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。
空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。
示例 1:
输入: 二叉树: [1,2,3,4]
1
/
2 3
/
4输出: “1(2(4))(3)”
解释: 原本将是“1(2(4)())(3())”,
在你省略所有不必要的空括号对之后,
它将是“1(2(4))(3)”。
public class LC263_606_tree2str {
//二叉树 前序遍历
public static String tree2str(TreeNode root) {
//递归+前序遍历
StringBuilder sb = new StringBuilder();
dfs(root, sb);
return sb.toString();
}
private static void dfs(TreeNode root, StringBuilder sb) {
if (root == null) {
return;
}
sb.append(root.val);
if (root.left != null) {
sb.append("(");
dfs(root.left, sb);
sb.append(")");
}
if (root.left == null && root.right != null) {
sb.append("(");
sb.append(")");
}
if (root.right != null) {
sb.append("(");
dfs(root.right, sb);
sb.append(")");
}
}
public static void main(String[] args) {
String s = tree2str(TreeNode.createTree());
System.out.println(s);
}
}
相关文章
- 【Java内部类】普通内部类和静态内部类的加载时机
- java发送内嵌图片邮件
- Java Unit 测试中如何获得 resources 中的文件
- JAVA中自定义properties文件介绍
- Java连接PostgreSQL数据库
- 精品基于java开发的航空订票系统SSM
- Java菜鸟学习笔记--数组篇(二):数组实例&args实例
- java中sql映射机制
- 运行java飞行记录器JFR(java flight recorder)
- Java8 API学习2 - java.lang.CharSequence, java.lang.String
- JAVA下实现二叉树的先序、中序、后序、层序遍历(递归和循环)
- Java 基础(类的加载与ClassLoader的理解)
- java中static修改成员变量和函数和其他使用
- How to Create a Java Concurrent Program
- Android Java反射与Proxy动态代理详解与使用基础篇(一)
- 【44】kotlin 与java的互相调用
- java中的“包”与C#中的“命名空间
- LeetCode-111. 二叉树的最小深度(java)
- LeetCode-101. 对称二叉树(java)
- Java数据结构——二叉树的基本操作
- python、java实现二叉树,细说二叉树添加节点、深度优先(先序、中序、后续)遍历 、广度优先 遍历算法
- PTA 题解:jmu-Java&Python-统计文字中的单词数量并按出现次数排序
- 剑指offer【04】- 重建二叉树(java)
- 【二叉树的直径(543-java)】
- 【二叉树的层平均值(637-java)】
- 【二叉树的中序遍历(94-java)】
- 【合并二叉树(617-go-java)】
- Java NIO源码分析之Buffer