Serialize and Deserialize Binary Tree
来源:互联网 发布:淘宝神笔有什么作用 编辑:程序博客网 时间:2024/06/06 15:47
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Codec { // Encodes a tree to a single string. public String serialize(TreeNode root) { if (root == null) { return null; } Queue<TreeNode> queue = new LinkedList<>(); StringBuilder sb = new StringBuilder(); queue.offer(root); while (!queue.isEmpty()) { TreeNode node = queue.poll(); if (node != null) { sb.append(node.val+","); queue.offer(node.left); queue.offer(node.right); } else { sb.append("null,"); } } return sb.toString(); } // Decodes your encoded data to tree. public TreeNode deserialize(String data) { if (data == null) { return null; } String[] strs = data.split(","); TreeNode[] nodes = new TreeNode[strs.length]; int[] nulls = new int[strs.length]; for (int i = 0; i < nodes.length; i++) { if (i > 0) { nulls[i] = nulls[i - 1]; } if (strs[i].equals("null")) { nulls[i]++; } else { nodes[i] = new TreeNode(Integer.valueOf(strs[i])); } } for (int i = 0; i < nodes.length; i++) { if (nodes[i] != null) { TreeNode left = nodes[2 * (i - nulls[i]) + 1]; TreeNode right = nodes[2 * (i - nulls[i]) + 2]; nodes[i].left = left; nodes[i].right = right; } } return nodes[0]; }}// Your Codec object will be instantiated and called as such:// Codec codec = new Codec();// codec.deserialize(codec.serialize(root));
0 0
- Serialize and Deserialize Binary Tree
- Serialize and Deserialize Binary Tree
- Serialize and Deserialize Binary Tree
- Serialize and Deserialize Binary Tree
- Serialize and Deserialize Binary Tree
- Serialize and Deserialize Binary Tree
- Serialize and Deserialize Binary Tree
- Serialize and Deserialize Binary Tree
- Serialize and Deserialize Binary Tree
- Serialize and Deserialize Binary Tree
- Serialize and Deserialize Binary Tree
- Serialize and Deserialize Binary Tree
- Serialize and Deserialize Binary Tree
- Serialize and Deserialize Binary Tree & Serialize and Deserialize BST
- Serialize and deserialize a binary tree
- Serialize and Deserialize a binary tree
- leetcode 297 : Serialize and Deserialize Binary Tree
- [leetcode297]Serialize and Deserialize Binary Tree
- java基础代码练习
- logback + spring + maven 日志的实现
- Clean Code 读书笔记
- 初次安装IDEA之后建议的一些配置
- js中的scrollleft、style.left、clientLeft、offsetLeft
- Serialize and Deserialize Binary Tree
- spfa 算法详解
- Read N Characters Given Read4 II - Call multiple times
- python 操作excel 读写同一个文件
- java基础学习之坦克
- LeetCode: Majority Element II
- javascript-产生页面遮罩层
- Read N Characters Given Read4
- 被 5 整除的数