序列化与反序列化二叉树
2023-02-18 16:26:31 时间
思路:
回溯
代码:
String Serialize(TreeNode root) {
if (root==null){
return "#!";
}
//先序遍历
String res=root.val+"!";
res+=Serialize(root.left);
res+=Serialize(root.right);
return res;
}
TreeNode Deserialize(String str) {
if (str==null){
return null;
}
String[] nodes=str.split("!");
Queue<String> queue= new LinkedList<>();
for (String node : nodes) {
queue.offer(node);
}
return reBuildTree(queue);
}
private TreeNode reBuildTree(Queue<String> queue) {
String poll = queue.poll();
if ("#".equals(poll)){
return null;
}
TreeNode currNode=new TreeNode(Integer.parseInt(poll));
currNode.left=reBuildTree(queue);
currNode.right=reBuildTree(queue);
return currNode;
}
相关文章
- CAD2018软件下载安装教程(Mac版)CAD 2022 机械版 软件安装教程
- (42)STM32——LCD显示屏实验笔记
- Autodesk AutoCAD2023安装教程【CAD2023】下载地址
- (43)STM32——触摸屏实验笔记
- 【C语言】continue 关键字
- (44)STM32——内存管理实验
- (45)STM32——SDIO实验
- 【Windows】AutoCAD2014中文版破解安装教程、下载地址cad软件全版本下载
- 【C语言】default 关键字
- FreeSWITCH新手指南
- 【C语言】do 关键字
- 橡皮鸭解题法
- 什么是Kamailio?
- Kamailio 5.6.1发布
- 【C语言】double 关键字
- Kamailio新手指南
- SILKYPIX JPEG Photography for Mac(照片处理软件) 11.2.7.0中文版
- 【C语言】else 关键字
- 如何提问
- UniPro半导体行业解决方案之安全合规篇:技术保障数据隐私