您的位置:首页 > 其它

序列化二叉树

2016-04-08 02:16 351 查看
题目描述

请实现两个函数,分别用来序列化和反序列化二叉树

/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;

public TreeNode(int val) {
this.val = val;

}

}
*/
import java.util.Queue;
import java.util.LinkedList;
public class Solution {

String Serialize(TreeNode root) {
if(root == null)
return "#!";
else{
String str=root.val + "!";
str+=Serialize(root.left);
str+=Serialize(root.right);
return str;
}
}
TreeNode Deserialize(String str) {
String[] array = str.split("!");
Queue<String> queue = new LinkedList<String>();
for(int i=0;i<array.length;i++){
queue.offer(array[i]);
}
return Deserializeing(queue);
}
TreeNode Deserializeing(Queue<String> queue){
String value = queue.poll();
if(value.equals("#"))
return null;
TreeNode tr = new TreeNode(Integer.valueOf(value));
tr.left = Deserializeing(queue);
tr.right = Deserializeing(queue);
return tr;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: