剑指offer—序列化二叉树
来源:互联网 发布:中科院在职研究生知乎 编辑:程序博客网 时间:2024/04/26 00:32
程序小知识:
equals方法对于字符串来说是比较内容的,而对于非字符串来说是比较
其指向的对象是否相同的。
== 比较符也是比较指向的对象是否相同的也就是对象在对内存中的的首地址。
也就是说equals方法和“==”在非字符串对象中的意义相同而在字符串对象中不同,因为字符串重新定义了equals方法
题目描述
请实现两个函数,分别用来序列化和反序列化二叉树
public class Solution { int index = -1; StringBuilder str = new StringBuilder(); String Serialize(TreeNode root) { SerializeCore(root); return String.valueOf(str); } void SerializeCore(TreeNode root){ if(root==null) { str.append("#,"); return; } str.append(root.val); str.append(','); SerializeCore(root.left); SerializeCore(root.right); } TreeNode Deserialize(String str) { index++; int len = str.length(); String[] strr = str.split(","); if(strr[index].equals("#")) return null; TreeNode node = new TreeNode(Integer.valueOf(strr[index])); node.left = Deserialize(str); node.right = Deserialize(str); return node; }}
**思路:
对于序列化:使用前序遍历,递归的将二叉树的值转化为字符,并且在每次二叉树的结点不为空时,在转化val所得的字符之后添加一个’ , ‘作为分割。对于空节点则以 ‘#’ 代替。
2. 对于反序列化:按照前序顺序,递归的使用字符串中的字符创建一个二叉树(特别注意:在递归时,可以设置一个全局变量index来保证每次递归后指向字符串的指针会随着递归的进行而移动!!!)**
阅读全文
0 0
- 剑指offer—序列化二叉树
- 剑指offer—序列化二叉树
- 剑指offer--序列化二叉树
- 《剑指offer》序列化二叉树
- [剑指offer]序列化二叉树
- 《剑指offer》:[62]序列化二叉树
- 剑指Offer--062-序列化二叉树
- 剑指offer-序列化二叉树
- 剑指offer 序列化二叉树
- 【剑指Offer】序列化二叉树
- 剑指offer 序列化二叉树
- 16.剑指offer-序列化二叉树
- 《剑指offer》序列化二叉树
- 剑指offer--序列化二叉树
- 剑指offer-序列化二叉树
- 剑指offer--序列化二叉树
- 剑指offer:序列化二叉树
- 剑指Offer——序列化二叉树
- 第四周实践项目8 C++标准模板库与数据结构的学习
- mysqldump备份和还原&&使用mysqldump备份和恢复所有数据库
- eclipse编辑环境的美化——eclipse color theme的使用
- Java+ selenium+maven截图方法TakeScreenshot
- 通过junit/TestNG+java简单实现接口的自动化测试
- 剑指offer—序列化二叉树
- 将视频监控带入数字时代
- eclipse birt报表预览出现Unhandled event loop exception java.lang.StackOverflowError异常
- 复制一组字符串中的后n个到另一组字符串中
- MySQL 性能优化的最佳 20+ 条经验
- Java AES文件和文本加解密
- AI一分钟 | 用AI拍色情片?神奇女侠的脸被移植到AV女优身上;内江出租车引进人脸识别技术,在全黑情况下可拍出80%影像
- IIC和SPI通信
- Android控件设置篇