tu
图中所给的序列是采用前序遍历来实现二叉树的序列的。

class Codec {public:// Encodes a tree to a single string.string serialize(TreeNode* root) {if ( root == nullptr ) return "";//如果树为空就直接返回空的字符串ostringstream output;//ostringotream用于格式化输出字符串(将字符串按照一定的格式输出如2020-09-01,)但是不知道如何需要多大的缓存区的时候,使用,可以自动管理内存//td::ostringstream::str()返回的是临时对象,不能对其直接操作。queue<TreeNode*> que;que.push(root);while ( !que.empty() ) {TreeNode* node = que.front();que.pop();if ( node == nullptr ) output << "# ";else {output << node->val << ' ';que.push(node->left);que.push(node->right);}}return output.str();}
//本质:用队列实现层序遍历// Decodes your encoded data to tree.TreeNode* deserialize(string data) {if ( data.empty() ) return nullptr;//如果是空的,空指针vector<TreeNode*> nodes;string val;istringstream input(data);//C++风格的字符读入操作//能够根据其中作为间隔的字符将所有的字符区隔开来while ( input >> val ) {if ( val == "#" ) nodes.push_back(nullptr);else nodes.push_back(new TreeNode(stoi(val)));};//将所有的值转化为根节点存放在相应的数组当中,按照层序遍历int pos = 1;for ( int i = 0; i < nodes.size(); ++i ) {if ( nodes[i] == nullptr ) continue;nodes[i]->left = nodes[pos++];nodes[i]->right = nodes[pos++];}//按照层序遍历的方式对其进行拼接return nodes[0];}
};

2021-09-01剑指offer37序列化二叉树相关推荐

  1. 剑指Offer_61_序列化二叉树

    题目描述 请实现两个函数,分别用来序列化和反序列化二叉树 解题思路 使用前序遍历,将遇到的结点添加到字符串中,遇到null则将一个#添加要序列化字符串中.反序列化时,每次读取根结点,然后读取其左结点, ...

  2. 《LeetCode力扣练习》剑指 Offer 27. 二叉树的镜像 Java

    <LeetCode力扣练习>剑指 Offer 27. 二叉树的镜像 Java 一.资源 题目: 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: 4 / 2 7 / \ / ...

  3. 剑指offer07.重建二叉树

    剑指offer07重建二叉树 题目 : 输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点. 假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 示例 : Input: preo ...

  4. 【LeetCode】剑指 Offer 34. 二叉树中和为某一值的路径

    [LeetCode]剑指 Offer 34. 二叉树中和为某一值的路径 文章目录 [LeetCode]剑指 Offer 34. 二叉树中和为某一值的路径 package offer;import ja ...

  5. 【LeetCode】剑指 Offer 27. 二叉树的镜像

    [LeetCode]剑指 Offer 27. 二叉树的镜像 文章目录 [LeetCode]剑指 Offer 27. 二叉树的镜像 一.递归法 二.辅助栈(或队列) 一.递归法 根据二叉树镜像的定义,考 ...

  6. 算法leetcode|剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树(rust很强)

    文章目录 剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树: 样例 1: 限制: 分析 题解 rust go c++ java python 原题传送门:https://leetcode. ...

  7. JZ27 [剑指 Offer 27] 二叉树的镜像

    二叉树的镜像 Category Difficulty Likes Dislikes lcof Easy (79.61%) 311 - 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: ...

  8. 剑指offer:二叉树序列化与反序列化 - Python

    转载自:https://blog.csdn.net/u010005281/article/details/79787278 题目描述 请实现两个函数,分别用来序列化和反序列化二叉树. 解题思路 序列化 ...

  9. 《剑指offer》二叉树镜像

    剑指offer简单题,但是能一下写对也需要小心考虑细节. 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / 6 10 /   / 5 7 9 11 ...

最新文章

  1. 对于注册中心,ZooKeeper、Eureka哪个更合适?
  2. 产品经理技能树之 数据体系
  3. IIS7.5 错误代码0x8007007e HTTP 错误 500.19
  4. 20155213 2016-2017-2 《Java程序设计》第七周学习总结
  5. java安全编码指南之:输入注入injection
  6. virtualBox 不通主机
  7. Mybatis入门---一对多、多对多
  8. 美部长施压堵华为,遭印度电信巨头现场驳斥 ;WhatsApp被曝漏洞:仅凭一张GIF动图黑客便可接管账户……...
  9. 命令及串口命令_嵌入式Linux系列第7篇:使用串口
  10. Effective C++ ——设计与声明
  11. 联通光猫pt952g管理员密码获取 v1.0
  12. OBS视频采集流程分析
  13. [置顶] 礼物:《红孩儿引擎内功心法修练与Cocos2d-x》之结点系统(场景,层,精灵)...
  14. delphi编程实现免杀捆绑
  15. 计算机的自带拍视频教程,电脑如何录制视频并剪辑
  16. OSChina 周六乱弹 —— 假如你被熊困到树上
  17. js改变html font size,JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)...
  18. 【转】国家集训队论文分类
  19. LeetCode 544. 输出比赛匹配对(NBA季后赛对阵图)
  20. 微信小程序添加emoji表情组件,雪碧图版本

热门文章

  1. myo学习(1):安装入门
  2. Keka for mac中文激活版如何提取支持的文件?
  3. mysql系统变量详解
  4. freeswitch实战三(eventSocket)
  5. 关于BSO(Blockchain Security Obscure)混淆协议开发
  6. Python基本操作
  7. electron 使用npm install安装 报错 electron@12.2.2 postinstall: node install.js
  8. transferto遇到的问题
  9. Python机器学习实例----用神经网络进行价格预测
  10. matlab割平面方法程序,用割平面法求解整数规划问题max z=x1 x2, s.t.-x1 x2