package RandomPractice;
import java.util.ArrayList;
import util.*;
public class DeSerializationBinaryTree {
public static void serialize(BTNode root, ArrayList<Integer> list){
if(root == null)
list.add(-1);
else{
list.add(root.value);
serialize(root.left, list);
serialize(root.right, list);
}
}
public static BTNode deserialize(ArrayList<Integer> list){
if(list.size() == 0)
return null;
int i = list.get(0);
list.remove(0);
if(i != -1){
BTNode root = new BTNode(i);
root.left = deserialize(list);
root.right = deserialize(list);
return root;
} else
return null;
}
public static void main(String[] args){
BTNode root1 = new BTNode(1, null, null);
root1.left = new BTNode(2, null, null);
root1.right = new BTNode(5, null, null);
root1.left.left = new BTNode(3, null, null);
root1.left.right = new BTNode(4, null, null);
ArrayList<Integer> list = new ArrayList<Integer>();
serialize(root1, list);
for(int i = 0; i < list.size(); i++)
System.out.print(list.get(i) + " ");
BTNode root = deserialize(list);
}
}
[Random Coding] De/Serialization Binary Tree
最新推荐文章于 2024-12-24 10:41:16 发布