二叉树的序列化
2016-03-29 17:03
295 查看
题目描述
二叉树被记录成文件的过程叫做二叉树的序列化。序列化的方法有很多,这里我们采用括号序列的方法将其序列化,所谓括号序列指的是对于一个节点生成一个括号,括号内是其子树的括号序列,其中左儿子(若存在)的括号在前,右儿子(若存在)的括号在后。对于给定的树,请设计高效的算法,将其序列化。给定一个树的根节点指针root,请返回一个字符串,代表其序列化后的括号序列。
思路:
递归方式先序遍历二叉树,遇到中节点打印一个‘(’,然后递归遍历左右子树,子树遍历完毕打印一个‘)’。
import java.util.*; /* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } }*/ public class TreeToSequence { public static String f(TreeNode root,StringBuilder sb){ sb.append("("); if(root.left!=null){ TreeNode le = root.left; f(le,sb); } if(root.right!=null){ TreeNode ri = root.right; f(ri,sb); } sb.append(")"); return sb.toString(); } public String toSequence(TreeNode root) { // write code here StringBuilder sb = new StringBuilder(); return f(root,sb); } }
相关文章推荐
- Java多线程——寺庙问题
- Vesions ignore & ld: library not found for -l..
- iOS开发UI篇之tableView 的用法详解
- Mysql数据库文件路径重置
- Flexbox——快速布局神器
- 使用C++实现二叉搜索树的数据结构
- Logmnr的DDL
- 网贷常见术语介绍
- 一个有趣的html5手机锁
- Spring mvc 配置事务的注意点
- 51NOD 算法马拉松12
- scrollTop 值 与页面html页面高度之间的关系
- 构建之法阅读笔记02
- 关于 unity5.3.1 录制 animation 带有 rotation 信息打包 Android 会运动错乱的问题
- 什么是 Websphere Portal?
- UBUNTU的默认root密码是多少,修改root密码
- jQuery表格插件datatables用法汇总
- Juniper主分区copy到backup分区
- 关于Ruby, Ruby on Rails的一些概念属性的介绍
- hdu 1757 A Simple Math Problem【矩阵快速幂】