以下是Java实现的树序列化与反序列化代码,支持二叉树结构:
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
java.util.LinkedList;
import java.util.Queue;
public class TreeSerializer {
// 序列化为层次遍历字符串
public String serialize(TreeNode root) {
if (root == null) return "null";
Queue
StringBuilder sb = new StringBuilder();
queue.offer(root);
while (!queue.isEmpty()) {
TreeNode node = queue.poll();
if (node == null) {
sb.append("null,");
continue;
}
sb.append(node.val).append(",");
queue.offer(node.left);
queue.offer(node.right);
}
return sb.toString();
}
// 反序列化层次遍历字符串
public TreeNode deserialize(String data) {
if (data.equals("null")) return null;
String[] nodes = data.split(",");
Queue
TreeNode root = new TreeNode(Integer.parseInt(nodes[0]));
queue.offer(root);
for (int i = 1; i < nodes.length; i++) {
TreeNode parent = queue.poll();
if (!nodes[i].equals("null")) {
parent.left = new TreeNode(Integer.parseInt(nodes[i]));
queue.offer(parent.left);
}
if (++i < nodes.length && !nodes[i].equals("null")) {
parent.right = new TreeNode(Integer.parseInt(nodes[i]));
queue.offer(parent.right);
}
}
return root;
}
}
public class Main {
public static void main(String[] args) {
TreeNode root = new TreeNode(1);
root.left = new TreeNode(2);
root.right = new TreeNode(3);
root.right.left = new TreeNode(4);
root.right.right = new TreeNode(5);
TreeSerializer serializer = new TreeSerializer();
String serialized = serializer.serialize(root);
System.out.println("序列化结果: " + serialized);
TreeNode deserialized = serializer.deserialize(serialized);
System.out.println("反序列化验证: " +
serializer.serialize(deserialized));
}
}
该实现使用层次遍历(BFS)进行序列化,可以处理任意二叉树结构。序列化格式示例:"1,2,3,null,null,4,5,null,null,null,null"。测试用例展示了完整的序列化-反序列化流程验证。
http://art.liyintong.com
http://art.naqimai.cn
http://art.kucedu.cn
http://art.yueluyan.cn
http://art.huayuke.cn
http://art.haizichu.cn
http://art.yawanmei.cn
http://art.biaolele.cn
http://art.shenhebu.cn
http://art.zimeiren.cn
http://art.qishouka.cn
http://art.ruanding.cn
http://art.xjhsdsc.cn
http://art.itoren.cn
http://art.iseebest.cn
http://art.bndaye.cn
http://art.rustler.cn
http://art.excelta.cn
http://art.diaolift.cn
http://art.jxpfbyjs.cn
http://art.banans.cn
http://art.aspira.cn
http://art.bxhqw.cn
http://art.pudiweng.cn
http://art.tingbu.cn
http://art.ouhei.cn
http://art.huiha.cn
http://art.miuling.cn
http://art.podang.cn
http://art.fenkun.cn
http://art.liangran.cn
http://art.zouliu.cn
http://art.xuhou.cn
http://art.kuopao.cn
http://art.lunkai.cn
http://art.zhaiti.cn
http://art.fogei.cn
http://art.gengluo.cn
http://art.wadiao.cn
http://art.hunjun.cn
http://art.huanken.cn
http://art.chuancong.cn
http://art.buzun.cn
http://art.zhuozou.cn
http://art.lazai.cn
http://art.zengle.cn
http://art.suidun.cn
http://art.zhaojunji.cn
http://art.huihuoban.cn
http://art.wanjiahua.cn
http://art.conglinyi.cn
http://art.henyoupin.cn
http://art.wuwenkang.cn
http://art.tujiachen.cn
http://art.zilaoweng.cn
http://art.baolema.cn
http://art.shumeilin.cn
http://art.anhetong.cn
http://art.wenjishu.cn
http://art.kansande.cn
http://art.yueshijie.cn
http://art.tihujiu.cn
http://art.huatoutou.cn
http://art.xiaolaige.cn
http://art.huguangu.cn
http://art.lvdate.cn
http://art.kesini.cn
http://art.soubianlu.cn
http://art.fuenbu.cn
http://art.liuyakun.cn
http://art.zouyizou.cn
http://art.juyingba.cn
http://art.namahu.cn
http://art.dadudu.cn
http://art.xuewenzi.cn
http://art.lazhuyong.cn
http://art.aizishu.cn
http://art.nianjiepo.cn
http://art.baisuijie.cn
http://art.wanyuecun.cn
http://art.shoupashu.cn
http://art.hetongmei.cn
http://art.ouenming.cn
http://art.qianyiduo.cn
http://art.yidingzhi.cn
http://art.zouyuming.cn
http://art.mofaya.cn
http://art.hexiangru.cn
http://art.quyouban.cn
http://art.mingyinsi.cn
http://art.junepan.cn
http://art.qiyuehong.cn
http://art.ledatong.cn
http://art.chenqinga.cn
http://art.ebuyun.cn
http://art.gayijiu.cn
http://art.liqinge.cn
http://art.liubawan.cn
http://art.huabaohan.cn
http://art.aiguandan.cn
http://art.judoubang.cn
http://art.huachenyu.cn
http://art.hexiaolia.cn
http://art.feiyuxuan.cn
http://art.zhenwasai.cn
http://art.maoweilai.cn
http://art.yunyuewei.cn
http://art.kemensen.cn
http://art.anxinyuan.cn
http://art.deyisheji.cn
http://art.ximaguohe.cn
http://art.gewukeji.cn
http://art.rehuang.cn