码迷,mamicode.com
首页 > 其他好文 > 详细

※剑指offer系列50:序列化二叉树

时间:2019-07-29 18:55:58      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:ack   off   vector   for   变量   tree   span   har   反序   

先来说一下什么是序列化二叉树,就是把二叉树转换成一串序列。反序列化就是将一串序列构造成一个二叉树。

这个题我也不是很懂,为什么要这样写

 1 class Solution {
 2 public:
 3     vector<int> aux;
 4     void treetovec(TreeNode * root)
 5     {
 6         if (!root)//空节点
 7         {
 8             aux.push_back(0xFFFFFFFF);
 9         }
10         else {
11             aux.push_back(root->val);
12             treetovec(root->left);//前序遍历
13             treetovec(root->right);
14         }
15         
16     }
17     TreeNode* vectotree(int * &c)
18     {
19         if (*c== 0xFFFFFFFF)//空节点
20         {
21             c++;
22             return NULL;
23         }
24         else {
25             TreeNode *cur = new TreeNode(*c);//这一句是什么?
26                                              //用一个int型的变量来初始化一个treenode
27             c++;
28             cur->left = vectotree(c);
29             cur->right = vectotree(c);
30             return cur;
31         }
32     }
33     char* Serialize(TreeNode *root) //序列化二叉树
34     {
35         treetovec(root);
36         int len = aux.size();
37         int *res = new int[len];
38         for (int i = 0; i < len; i++)
39             res[i] = aux[i];
40         return (char*)res;
41 
42     }
43     TreeNode* Deserialize(char *str) //反序列化二叉树
44     {
45         int* c = (int *)str;
46         return vectotree(c);
47     }
48 };

 

※剑指offer系列50:序列化二叉树

标签:ack   off   vector   for   变量   tree   span   har   反序   

原文地址:https://www.cnblogs.com/neverland0718/p/11265752.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!