191111题

2023-11-30 09:39
文章标签 191111

本文主要是介绍191111题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
在这里插入图片描述

#include<iostream>
using namespace std;
struct TreeNode {int value;TreeNode*left;TreeNode*right;TreeNode(int x = 0) :value(x), right(NULL), left(NULL) {}
};
class Solution {
public:void Serialize(TreeNode*proot)//前序为例{if (proot == NULL){cout << "$ ";return;}//交换以下三句的顺序就可以可以得到前序、中序、后序序列cout << proot->value << " ";Serialize(proot->left);Serialize(proot->right);}TreeNode* DeSerialize(char **str)//递归时改变了str值使其指向后面的序列,因此声明char**{if (str == NULL)return NULL;TreeNode*root = DeSerializeCore(str);return root;}
private://由前序遍历序列反序列化为例TreeNode* DeSerializeCore(char **str){if (**str == '$'){(*str)++;return NULL;}int num = 0;if (**str != '\0')num = ((**str) - '0');TreeNode*root = new TreeNode(num);(*str)++;if (**str == '\0')return root;root->left = DeSerializeCore(str);root->right = DeSerializeCore(str);//递归结束后返回大树的根return root;}
};int main() {TreeNode*root = new TreeNode(1);TreeNode*node1 = new TreeNode(2); TreeNode*node2 = new TreeNode(3);TreeNode*node3 = new TreeNode(4); TreeNode*node4 = new TreeNode(5); TreeNode*node5 = new TreeNode(6);root->left = node1; root->right = node2;node1->left = node3;node2->left = node4; node2->right = node5;Solution solution;solution.Serialize(root);cout << endl;char*str = "124$$$35$$6$$";TreeNode*reversed_root = solution.DeSerialize(&str);cout << reversed_root->right->left->value << endl;system("pause");return 0;
}

这篇关于191111题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/436541

相关文章

191111_小小小白安装Ubuntu18.04(单系统U盘安装)

经历: 踩了坑,按照安装指示,默认删除盘中的所有内容,然后安装ubuntu,(联网)但是最后会出现执行update grub 失败,致命错误(没有分区,自动安装) 支持UEFI启动的电脑 1.http://rufus.ie/  下载rufus 2.后来用Rufus制作盘,https://ywnz.com/linuxjc/3978.html  是错的,不能按照这个来 应该:

资源191111

https://github.com/leiguorui/programming-video-tutorials