您的位置:首页 > 其它

44.序列化二叉树,反序列化二叉树

2017-06-01 15:07 381 查看


题目描述

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

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

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

}

}
*/
public class Solution {
String Serialize(TreeNode root) {
if(root==null){
return "";
}
StringBuffer sb = new StringBuffer();
Serialize(root,sb);
return sb.toString();
}
public void Serialize(TreeNode node ,StringBuffer sb){
if(node==null){
sb.append("#,");
return;
}
sb.append(node.val+",");
Serialize(node.left,sb);
Serialize(node.right,sb);
}

TreeNode Deserialize(String str) {
if(str.length()==0){
return null;
}
String[] strArray = str.split(",");
return Deserialize(strArray);

}
int index = -1;
public TreeNode Deserialize(String[] strArray){
index++;
if(!strArray[index].equals("#")){
TreeNode node = new TreeNode(0);
node.val=Integer.parseInt(strArray[index]);
node.left = Deserialize(strArray);
node.right = Deserialize(strArray);
return node;
}
return null;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: