/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};
*/
class Solution {
public:
char* Serialize(TreeNode *root) {
if(root == NULL)
return NULL;
string str;
Serialize(root, str);
char *ret = new char[str.length() + 1];
int i;
for(i = 0; i < str.length(); i++){
ret[i] = str[i];
}
ret[i] = '\0';
return ret;
}
void Serialize(TreeNode *root, string& str){
if(root == NULL){
str += '#';
return ;
}
string r = to_string(root->val);
str += r;
str += ',';
Serialize(root->left, str);
Serialize(root->right, str);
}
TreeNode* Deserialize(char *str) {
if(str == NULL)
return NULL;
TreeNode *ret = Deserialize(&str);
return ret;
}
TreeNode* Deserialize(char **str){//由于递归时,会不断的向后读取字符串
if(**str == '#'){ //所以一定要用**str,
++(*str); //以保证得到递归后指针str指向未被读取的字符
return NULL;
}
int num = 0;
while(**str != '\0' && **str != ','){
num = num*10 + ((**str) - '0');
++(*str);
}
TreeNode *root = new TreeNode(num);
if(**str == '\0')
return root;
else
(*str)++;
root->left = Deserialize(str);
root->right = Deserialize(str);
return root;
}
};
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
26.树的子结构 Tree 常考 27.二叉树的镜像 Tree 28.对称的二叉树 Tree 29.顺时针打印矩阵 Array 30.包含min函数的栈 Stack 31.栈的压入弹出序列 Stack 常考 32.从上往下打印二叉树 Tree 常考 32.按之字形顺序打印二叉树 Tree 32.把二叉树打印成多行 Tree 33.二叉搜索树的后序遍历序列 Tree 常考 34.二叉树中和为某一值的路径 Tree 35.复杂链表的复制 Linked List 36.二叉搜索树与双向链表 Linked List 37.序列化二叉树 Tree 关注 38.字符串的排列 String 关注 39.数组中出现次数超过一半的数字 Array 常考 40.最小的k个数 Heap 41.数据流中的中位数 常考 42.连续子数组最大和 Dynamic Programming 43.整数中1出现的次数 Bit Manipulation 关注 44.数字序列中某一位的数字 Math 关注 45.把数组排成最小的数 String 46.把数字翻译成字符串 String 47.礼物的
资源推荐
资源详情
资源评论
收起资源包目录
目前最火的python编程题之2.zip (29个子文件)
目前最火的python编程题之2
39.数组中出现次数超过一半的数字
39.数组中出现次数超过一半的数字.py 719B
38.字符串的排列
38.字符串的排列.py 708B
31.栈的压入弹出序列
31.栈的压入弹出序列.py 460B
49.丑数
49.丑数.py 502B
.gitattributes 66B
30.包含min函数的栈
30.包含min函数的栈.cpp 594B
30.包含min函数的栈.py 635B
35.复杂链表的复制
35.复杂链表的复制.py 803B
35.复杂链表的复制.cpp 1KB
43.整数中1出现的次数
43.整数中1出现的次数.py 339B
28.对称的二叉树
28.对称的二叉树.cpp 641B
42.连续子数组的最大和
42.连续子数组的最大和.py 233B
40.最小的k个数
40.最小的k个数(partition).py 1016B
40.最小的k个数(heap).py 1KB
27.二叉树的镜像
27.二叉树的镜像.py 480B
27.二叉树的镜像(iter).py 841B
32.按之字形顺序打印二叉树
32.按之字形顺序打印二叉树.py 856B
32.把二叉树打印成多行
32.把二叉树打印成多行.py 874B
36.二叉搜索树与双向链表
36.二叉搜索树与双向链表.py 814B
45.把数组排成最小的数
45.把数组排成最小的数.py 430B
41.数据流中的中位数
41.数据流中的中位数.py 2KB
32.从上往下打印二叉树
32.从上往下打印二叉树.py 698B
37.序列化二叉树
37.序列化二叉树.cpp 2KB
34.二叉树中和为某一值的路径
34.二叉树中和为某一值的路径.py 948B
.gitignore 2KB
33.二叉搜索树的后序遍历序列
33.二叉搜索树的后序遍历序列.py 596B
29.顺时针打印矩阵
29.顺时针打印矩阵.py 1KB
26.树的子结构
26.树的子结构.cpp 902B
26.树的子结构.py 1KB
共 29 条
- 1
资源评论
梦回阑珊
- 粉丝: 2550
- 资源: 657
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现配电网三相潮流计算方法,对几种常用的配电网潮流计算方法进行了对比分析.rar
- 基于matlab实现配电网潮流 经典33节点 前推回代法潮流计算 回代电流 前推电压 带注释.rar
- 基于matlab实现模拟退火遗传算法的车辆调度问题研究,用MATLAB语言加以实现.rar
- 基于matlab实现蒙特卡洛的的移动传感器节点定位算法仿真代码.rar
- 华中数控系统818用户说明书
- 基于matlab实现卡尔曼滤波器完成多传感器数据融合 对多个机器人的不同传感器数据进行融合估计足球精确位置.rar
- 基于matlab实现进行简单车辆识别-车辆检测.rar
- 基于JSP物流信息网的设计与实现
- 基于matlab实现车牌识别程序,和论文,自己做的,做毕业设计的可以看看 .rar
- Windows系统下安装与配置Neo4j的步骤
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功