剑指offer——序列化二叉树
2016-06-23 21:12
549 查看
题目描述:
请实现两个函数,分别用来序列化和反序列化二叉树。思路:
首先得理解题目的意思,序列化就是返回一个带有#和逗号的字符串。反序列化就是根据带有#和逗号的字符串返回一棵二叉树。比如对于二叉树1 / \ 2 3 /\ /\ 4 5 6 7
来讲,序列化的结果是1,2,#,#,3,4,#,7,#,#,5,#,#,。而反序列化的结果则是输出一棵二叉树。
代码实现:
/* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { String Serialize(TreeNode root) { StringBuilder sb = new StringBuilder(); if (root == null) { sb.append("#,"); return sb.toString(); } sb.append(root.val + ","); sb.append(Serialize(root.left)); sb.append(Serialize(root.right)); return sb.toString(); } int p = -1; TreeNode Deserialize(String str) { p++; if (p >= str.length()) return null; TreeNode node = null; String[] strArray = str.split(","); if (!strArray[p].equals("#")) { node = new TreeNode(Integer.valueOf(strArray[p])); node.left = Deserialize(str); node.right = Deserialize(str); } return node; } }
相关文章推荐
- java调用javascript文件方法
- js获取网页屏幕可见区域的高度
- (一)node.js之简介和安装
- hwSlider-内容滑动切换效果(三):jquery.hwSlide.js插件封装
- BZOJ1014 [JSOI2008]火星人prefix
- javaScript设计模式之职责链模式
- js Class 化
- JS练习 改变文本框状态
- JS练习题 显示登入者相关好友
- 关于html转pdf
- item3 二维数组中的查找[剑指offer]
- arcgis api for javascript 4.0 安装部署
- js 获取浏览器版本信息(全)
- 性能之js位置
- 【设计模式】前端控制器模式
- 伪元素::after和::before
- html5 地图API
- 关于前端我的第一篇博客
- angular指令系列---多行文本框自动高度
- JS实现手机振动