题目描述

请实现两个函数,分别用来序列化和反序列化二叉树
 
二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#),以 ! 表示一个结点值的结束(value!)。

二叉树的反序列化是指:根据某种遍历顺序得到的序列化字符串结果str,重构二叉树。

 
 
题解:
  注意string 到 char*的转换
 
 class Solution {
public:
char* Serialize(TreeNode *root) {
string str = "";
preOrder(root, str);
char *c = new char[str.size() + ];
strcpy(c, str.c_str());
return c;
}
void preOrder(TreeNode *root, string &str)
{
if (root == nullptr)
{
str += "#";
return;
}
str += to_string(root->val) + "!";
preOrder(root->left, str);
preOrder(root->right, str);
}
TreeNode* Deserialize(char *str) {
string s = str;
int index = ;
return createTree(s, index);
}
TreeNode* createTree(const string &str, int &index)
{
TreeNode* root = nullptr;
if (str[index] == '#' || index == str.size())
{
index++;
return root;
}
string s = "";
while (str[index] != '!')
s += str[index++];
index++;
root = new TreeNode(atoi(s.c_str()));
root->left = createTree(str, index);
root->right = createTree(str, index);
return root;
}
};

最新文章

  1. RTSP协议转换RTMP直播协议
  2. 粒子拼字效果(getImageData方法)
  3. gym923B
  4. python基础——继承和多态
  5. uploadify多次加载导致页面无法加载
  6. iOS 8创建交互式通知-备
  7. java和javascript获取word文档的书签位置对比
  8. 有用的BitConverter
  9. (step5.1.3)hdu 1213( How Many Tables——1213)
  10. BZOJ 4145: [AMPPZ2014]The Prices( 状压dp + 01背包 )
  11. 重新想象 Windows 8 Store Apps (4) - 控件之提示控件: ProgressRing; 范围控件: ProgressBar, Slider
  12. 【C语言的日常实践(十四)】constkeyword详细解释
  13. 最新Hadoop Shell完全讲解
  14. 02_HTML5+CSS详解第四天
  15. Bootstrap3 排版-缩略语
  16. oracle中动态SQL详解
  17. 2、jenkins+svn自动发布和回滚
  18. MATLAB 曲线形状,粗细,颜色使用大全
  19. 剑指Offer 59. 按之字形顺序打印二叉树 (二叉树)
  20. blfs(systemd版本)学习笔记-构建ibus-libpinyin使用中文输入法

热门文章

  1. NX二次开发-Ufun API Example
  2. NX二次开发-Block UI C++界面关于 在Block UI中UF_initialize();和UF_terminate();的使用
  3. Xcode Command Line Tools for Mac OS X 10.9 Mavericks
  4. eclipse git项目的冲突文件处理
  5. java xmltojson jsontoxml
  6. Java获取CPU占用率
  7. 2.4 webpack + gulp 构建完整前端工作流
  8. Linux 下tomcat+jdk+mysql安装
  9. 4.2.1 Vector bit-select and part-select addressing
  10. POJ 3130 How I Mathematician Wonder What You Are! (半平面交)