剑指offer_二叉树---序列化二叉树
2017-08-21 14:50
375 查看
题目描述
请实现两个函数,分别用来序列化和反序列化二叉树解题思路
1,序列化和反序列化都可以通过前序遍历(根左右)来进行2,序列化遇到null用“#”来标明
3,反序列化的时候遇到“#”则停止
代码
/** * */ package 二叉树; /** * <p> * Title:请实现两个函数,分别用来序列化和反序列化二叉树 * * */ public class SerializeAndDeserialize { /** * void * * @param args */ public String Serialize(TreeNode root) { //通过前序遍历来序列化二叉树,遇到null值则改为特殊符号 StringBuffer sb = new StringBuffer(); 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(); } public int index =-1; public TreeNode Deserialize(String str) { index++; int len = str.length(); if(index>=len){ return null; //index从0开始,到末尾结束 } String[] strs = str.split(","); //把字符串按照“,”分隔开 TreeNode node =null; if(!strs[index].equals("#")){ node = new TreeNode(Integer.valueOf(strs[index])); node.left =Deserialize(str); node.right = Deserialize(str); } return node; } public static void main(String[] args) { // TODO Auto-generated method stub } }
相关文章推荐
- 剑指offer--序列化二叉树
- 剑指Offer--062-序列化二叉树
- 剑指offer——面试题62:序列化二叉树
- [剑指offer]序列化二叉树
- 剑指offer(五十)之序列化二叉树
- 剑指offer-二叉树的序列化和反序列化(困惑)-Java
- (C++)剑指offer-61:序列化二叉树(树)(再理解)
- 剑指offer——面试题62:序列化二叉树
- 剑指Offer面试题62:序列化二叉树
- 【剑指Offer】面试题62:序列化二叉树
- 剑指Offer_61_序列化二叉树
- 【剑指offer】题61:二叉树序列化、反序列化
- 剑指offer-序列化二叉树
- 剑指offer 编程题(58):序列化二叉树
- 【剑指Offer学习】【面试题62:序列化二叉树】
- 剑指offer 序列化二叉树
- 【剑指offer-解题系列(62)】序列化二叉树
- 剑指offer--面试题62:序列化二叉树
- 剑指Offer——序列化二叉树
- 【剑指offer】面试题37:序列化二叉树