当前位置: 首页 > news >正文

LeetCode HOT100 - 二叉树的序列化与反序列化

问题就是要把一个树压缩成一个序列,并且可以恢复

最直接的序列化实际上就是前序、后序这样的形式

在一般的二叉树的题中,需要前序+中序才能还原树

但是如果我们把 null 也存下来,那么一个前序实际上已经足够还原树的信息了

前序的顺序是 根->左->右

反序列化的时候,也是类似的,先建根节点,然后递归构建左子树和右子树

因为我们存了 null 的信息,所以当递归没法继续向下的时候,就知道该到右子树了

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Codec {
public:void dfs1(TreeNode *root, string &s) {if (!root) {s += "#,";return;}s += to_string(root->val) + ",";dfs1(root->left, s);dfs1(root->right, s);}TreeNode* dfs2(vector<string> &a, int &u) {if (a[u] == "#") {u++;return nullptr;}TreeNode *root = new TreeNode(stoi(a[u]));u++;root->left = dfs2(a, u);root->right = dfs2(a, u);return root;}// Encodes a tree to a single string.string serialize(TreeNode* root) {string s;dfs1(root, s);return s;}// Decodes your encoded data to tree.TreeNode* deserialize(string data) {vector<string> a;string cur;for (auto c : data) {if (c == ',' ) {a.emplace_back(cur);cur.clear();} else {cur += c;}}int u = 0;return dfs2(a, u);}
};// Your Codec object will be instantiated and called as such:
// Codec ser, deser;
// TreeNode* ans = deser.deserialize(ser.serialize(root));
http://www.jsqmd.com/news/581138/

相关文章:

  • 3秒破局!某调味品龙头企业的“数智革命”
  • 中央空调哪家性价比高,好用的厂家有哪些 - 工业品网
  • 【故障诊断】用于轴承故障诊断的候选故障频率优化克改进包络频谱研究(Matlab代码实现)
  • 效率倍增:用快马AI自动生成鸿蒙pc应用通用模块,省时省力
  • 3分钟掌握VIA Keyboards:解锁机械键盘终极自定义能力 [特殊字符]
  • ANIMATEDIFF PRO开箱即用:基于Realistic Vision V5.1的电影级文生视频平台
  • 手把手教你为imx6ull-mini板移植WM8960音频驱动(含alsa-lib/alsa-utils配置避坑指南)
  • OpenClaw技能市场探索:Qwen3-14b_int4_awq增强办公自动化能力
  • 阴阳师自动化脚本实战手册:告别重复劳动,智能解放双手
  • 锐达仪表的劣势是什么,和竞品相比有啥不足,咋选择 - 工业品牌热点
  • 如何解决Adobe扩展安装难题:ZXPInstaller技术深度解析
  • 如何用自然语言处理工具包快速解析文本?3个实用场景带你入门
  • Triton推理部署超快
  • 矿山/工矿/电网配套配电箱选购攻略:合规、耐用与售后缺一不可 - 深度智识库
  • 人与Agent将如何协同工作?深度解析企业级Agent架构落地与提效指南
  • 好用的心理咨询app推荐:谁能够真正治愈你? - 健成星云
  • 如何通过LAVFilters实现流畅的媒体播放体验?
  • PyTorch 3.0静态图训练成本飙升?3类隐性开销+5步精准归因法,今天不看明天多烧$28,600
  • 2025届毕业生推荐的十大AI写作助手解析与推荐
  • Boss-Key终极指南:3秒掌握职场隐私保护的秘密武器
  • NotaGen保姆级教程:3步生成莫扎特风格交响乐,无需音乐基础
  • 番茄小说下载器:用Rust重写的全功能离线阅读解决方案
  • 阿里3天3王炸!全模态、精准控图和智能体编程SOTA,但没开源
  • intv_ai_mk11多场景支持:从技术文档到营销文案的跨领域文本生成能力
  • 5大解决方案:多网盘工具实现下载加速全攻略
  • 手把手用 Spring AI 做一个智能客服:意图识别 + 工具调用 + 人工无缝切换
  • XGP-save-extractor:Xbox Game Pass存档提取工具使用教程
  • 2026年无锡热门的气体探测器维保服务公司推荐:苏锡常地区靠谱的有哪些? - 工业推荐榜
  • G-Helper终极指南:3步快速修复华硕笔记本色彩失真问题
  • C语言新手避坑指南:math.h库函数参数检查与常见编译错误解决