2021-09-01剑指offer37序列化二叉树
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序列化二叉树相关推荐
- 剑指Offer_61_序列化二叉树
题目描述 请实现两个函数,分别用来序列化和反序列化二叉树 解题思路 使用前序遍历,将遇到的结点添加到字符串中,遇到null则将一个#添加要序列化字符串中.反序列化时,每次读取根结点,然后读取其左结点, ...
- 《LeetCode力扣练习》剑指 Offer 27. 二叉树的镜像 Java
<LeetCode力扣练习>剑指 Offer 27. 二叉树的镜像 Java 一.资源 题目: 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: 4 / 2 7 / \ / ...
- 剑指offer07.重建二叉树
剑指offer07重建二叉树 题目 : 输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点. 假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 示例 : Input: preo ...
- 【LeetCode】剑指 Offer 34. 二叉树中和为某一值的路径
[LeetCode]剑指 Offer 34. 二叉树中和为某一值的路径 文章目录 [LeetCode]剑指 Offer 34. 二叉树中和为某一值的路径 package offer;import ja ...
- 【LeetCode】剑指 Offer 27. 二叉树的镜像
[LeetCode]剑指 Offer 27. 二叉树的镜像 文章目录 [LeetCode]剑指 Offer 27. 二叉树的镜像 一.递归法 二.辅助栈(或队列) 一.递归法 根据二叉树镜像的定义,考 ...
- 算法leetcode|剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树(rust很强)
文章目录 剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树: 样例 1: 限制: 分析 题解 rust go c++ java python 原题传送门:https://leetcode. ...
- JZ27 [剑指 Offer 27] 二叉树的镜像
二叉树的镜像 Category Difficulty Likes Dislikes lcof Easy (79.61%) 311 - 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: ...
- 剑指offer:二叉树序列化与反序列化 - Python
转载自:https://blog.csdn.net/u010005281/article/details/79787278 题目描述 请实现两个函数,分别用来序列化和反序列化二叉树. 解题思路 序列化 ...
- 《剑指offer》二叉树镜像
剑指offer简单题,但是能一下写对也需要小心考虑细节. 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / 6 10 / / 5 7 9 11 ...
最新文章
- 对于注册中心,ZooKeeper、Eureka哪个更合适?
- 产品经理技能树之 数据体系
- IIS7.5 错误代码0x8007007e HTTP 错误 500.19
- 20155213 2016-2017-2 《Java程序设计》第七周学习总结
- java安全编码指南之:输入注入injection
- virtualBox 不通主机
- Mybatis入门---一对多、多对多
- 美部长施压堵华为,遭印度电信巨头现场驳斥 ;WhatsApp被曝漏洞:仅凭一张GIF动图黑客便可接管账户……...
- 命令及串口命令_嵌入式Linux系列第7篇:使用串口
- Effective C++ ——设计与声明
- 联通光猫pt952g管理员密码获取 v1.0
- OBS视频采集流程分析
- [置顶] 礼物:《红孩儿引擎内功心法修练与Cocos2d-x》之结点系统(场景,层,精灵)...
- delphi编程实现免杀捆绑
- 计算机的自带拍视频教程,电脑如何录制视频并剪辑
- OSChina 周六乱弹 —— 假如你被熊困到树上
- js改变html font size,JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)...
- 【转】国家集训队论文分类
- LeetCode 544. 输出比赛匹配对(NBA季后赛对阵图)
- 微信小程序添加emoji表情组件,雪碧图版本
热门文章
- myo学习(1):安装入门
- Keka for mac中文激活版如何提取支持的文件?
- mysql系统变量详解
- freeswitch实战三(eventSocket)
- 关于BSO(Blockchain Security Obscure)混淆协议开发
- Python基本操作
- electron 使用npm install安装 报错 electron@12.2.2 postinstall: node install.js
- transferto遇到的问题
- Python机器学习实例----用神经网络进行价格预测
- matlab割平面方法程序,用割平面法求解整数规划问题max z=x1 x2, s.t.-x1 x2