剑指offer——序列化二叉树
来源:互联网 发布:编程常用语言有哪些 编辑:程序博客网 时间:2024/05/29 04:40
题目描述:
请实现两个函数,分别用来序列化和反序列化二叉树。
思路:
首先得理解题目的意思,序列化就是返回一个带有#和逗号的字符串。反序列化就是根据带有#和逗号的字符串返回一棵二叉树。比如对于二叉树
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; }}
0 0
- 剑指offer—序列化二叉树
- 剑指offer—序列化二叉树
- 剑指Offer——序列化二叉树
- 剑指offer——序列化二叉树
- 剑指offer(C++)——序列化二叉树
- 剑指offer——序列化二叉树___
- 剑指offer——61.序列化二叉树
- 剑指offer--序列化二叉树
- 《剑指offer》序列化二叉树
- [剑指offer]序列化二叉树
- 《剑指offer》:[62]序列化二叉树
- 剑指Offer--062-序列化二叉树
- 剑指offer-序列化二叉树
- 剑指offer 序列化二叉树
- 【剑指Offer】序列化二叉树
- 剑指offer 序列化二叉树
- 16.剑指offer-序列化二叉树
- 《剑指offer》序列化二叉树
- 深入理解Nginx chap 4 配置, error日志和请求上下文
- 关于windows 10 安装
- ping故障检测过程
- Ubuntu16.04 Server 64bit 使用LVM
- Anti-Goldbach's Conjecture 素数打表
- 剑指offer——序列化二叉树
- 结构体和预定义
- hdu 1286 素数打表
- Android 手势滑动
- 最长公共子序列(未完成)
- matlab对excel数据进行排序求和
- 关于自定义对话框(二)
- C语言基础 编译成功的exe运行时闪退
- hdu 2136 素数打表