牛客网刷题之序列化二叉树
来源:互联网 发布:语音读书软件下载 编辑:程序博客网 时间:2024/05/22 04:38
题目描述:
解题思路:
首先我们得知道序列化是怎样的。二叉树序列化时,如果结点
不为空时,在转化val所得的字符之后添加一个’ , ‘作为分割如果是空节点则以 ‘#,‘ 代替。我们可以使用前序遍历,递归的将二叉树的值转化为字符。反序列化就是序列化的一个逆过程,首先得判断字符串是否为空,不为空的话就将字符串转化为字符串数组。如果每一下标的字符串不等于“#”(不为空),就强转为相应的值,递归来实现左右结点的转换。
题解:
private int index = -1; 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(); } TreeNode Deserialize(String str) { index ++; if(index >= str.length()){ return null; } String[] nodes = str.split(","); TreeNode node = null; if(! nodes[index].equals("#")){ node = new TreeNode(Integer.valueOf(nodes[index])); node.left = Deserialize(str); node.right = Deserialize(str); } return node; }
ac结果:
0 0
- 牛客网刷题之序列化二叉树
- 数据结构之二叉树: 二叉树序列化
- 二叉树序列化
- 二叉树序列化
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 二叉树序列化
- 序列化二叉树
- 序列化二叉树
- Retrofit & OkHttp系列(一)
- 大数据与JS实现2014巴西世界杯冠军预测图
- 源码推荐:自定义下拉刷新动画 弹性的分段选择控件
- android 圆环(ring)drawable 画法 ——简单记录
- hdu1071定积分
- 牛客网刷题之序列化二叉树
- java生成pdf(Itext)
- git flow 常用命令 与 使用心得
- 第十二周—C语言 递归求解(爬楼梯)
- H264 SPS分析
- mac 单机版 spark 安装
- git基本操作(二)
- maven注意事项
- Multiple annotations found at this line: - String cannot be resolved to a type