题目描述
实现两个函数,分别用来序列化和反序列化二叉树
思路
序列化:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中简历起来的二叉树可以持久保存 反序列化:根据某种遍历方式得到的序列化字符串结果,重构二叉树
代码
public class Solution {
String Serialize(TreeNode root) {
StringBuffer sb=
new StringBuffer();
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();
}
int index=-
1;
TreeNode Deserialize(String str) {
index++;
int len=str.length();
if(index>=len)
return null;
String[] str1=str.split(
",");
TreeNode node=
null;
if(!str1[index].equals(
"#")){
node=
new TreeNode(Integer.valueOf(str1[index]));
node.left=Deserialize(str);
node.right=Deserialize(str);
}
return node;
}
}
目录
题目描述思路代码目录