序列化二叉树
来源:互联网 发布:js 页面加载后 合计 编辑:程序博客网 时间:2024/06/08 17:18
1.题目描述
请实现两个函数,分别用来序列化和反序列化二叉树
传送门
2.code(java1.7版本)
/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class Solution { public int index=-1; String Serialize(TreeNode root) { StringBuffer ans=new StringBuffer(); if(root==null){ ans.append("#,"); return ans.toString(); } ans.append(root.val+","); ans.append(Serialize(root.left)); ans.append(Serialize(root.right)); return ans.toString(); } TreeNode Deserialize(String str) { index++; TreeNode node=null; String[] ch=str.split(","); if(index>=ch.length)return null; if(!ch[index].equals("#")){ node=new TreeNode(Integer.valueOf(ch[index])); node.left=Deserialize(str); node.right=Deserialize(str); } return node; }}
3.题目分析
根据前序遍历规则完成序列化与反序列化。所谓序列化指的是遍历二叉树为字符串;所谓反序列化指的是依据字符串重新构造成二叉树。依据前序遍历序列来序列化二叉树,因为前序遍历序列是从根结点开始的。当在遍历二叉树时碰到Null指针时,这些Null指针被序列化为一个特殊的字符“#”。另外,结点之间的数值用逗号隔开。
阅读全文
0 0
- 二叉树序列化
- 二叉树序列化
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 二叉树序列化
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- C/C++ 指针函数返回值的一些问题
- java面试题-理论
- c程序调用汇编函数
- HDU 5517 Triple ACM/ICPC 2015 Shenyang(二维树状数组)
- DEV控件编辑框录入内容消失的问题
- 序列化二叉树
- 循环语句
- 【codevs 1036】商务旅行
- 可折叠按钮
- 2018计算机推免生东南大学面试笔试回忆录~
- 阿里云Centos下安装JDK+Tomcat+Mysql步骤详解
- mysql 字段类型保存小数和整数
- jvm源码阅读笔记[3]:从内存分配到触发GC的细节
- bzoj 2783: [JLOI2012]树