剑指offer | 训练题60:序列化二叉树
来源:互联网 发布:论文数据伪造 编辑:程序博客网 时间:2024/06/06 09:51
题目描述
请实现两个函数,分别用来序列化和反序列化二叉树
思路
//用递归/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: TreeNode* decode(char *&str) { if(*str == '#'){ str++; return NULL; } int num = 0; while(*str != ',') num = num*10 +(*(str++)-'0');//取出一个节点的数字 str++;//删除一个字符',' TreeNode *root = new TreeNode(num);//算出节点总数量 root->left = decode(str); root->right = decode(str); return root; } char* Serialize(TreeNode *root) { if(root == NULL) return "#"; string r = to_string(root->val); r.push_back(','); //用递归的方法遍历左子树和右子树 char *left = Serialize(root->left); char *right = Serialize(root->right); char *ret = new char[strlen(left) + strlen(right) + r.size()]; //得到的字符串拼接起来 strcpy(ret, r.c_str()); strcat(ret, left); strcat(ret, right); return ret; } TreeNode* Deserialize(char *str) { return decode(str); }};
阅读全文
0 0
- 剑指offer | 训练题60:序列化二叉树
- 剑指offer--序列化二叉树
- 《剑指offer》序列化二叉树
- 剑指offer—序列化二叉树
- [剑指offer]序列化二叉树
- 《剑指offer》:[62]序列化二叉树
- 剑指Offer--062-序列化二叉树
- 剑指offer-序列化二叉树
- 剑指offer 序列化二叉树
- 【剑指Offer】序列化二叉树
- 剑指offer 序列化二叉树
- 16.剑指offer-序列化二叉树
- 《剑指offer》序列化二叉树
- 剑指offer--序列化二叉树
- 剑指offer-序列化二叉树
- 剑指offer--序列化二叉树
- 剑指offer:序列化二叉树
- 剑指offer—序列化二叉树
- 深入理解Java注解(Annotation)--注解处理器
- matlab的Reshape函数实现
- POJ 2886 Who Gets the Most Candies? 线段树单点更新
- D
- 2017暑假七林集训day17
- 剑指offer | 训练题60:序列化二叉树
- UOJ #5 [NOI2014 D2T1] 动物园
- 136. Single Number(C++)
- ZOJ 2671 (线段树+矩阵乘法)
- rem.js
- .NET线程同步之Volatile构造
- ProjectEuler-Problem10-Summation of primes
- Android 屏幕适配
- 复现一个DataGridView仅显示一行且不显式抛异常的Bug