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

Posted neverland0718

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了※剑指offer系列50:序列化二叉树相关的知识,希望对你有一定的参考价值。

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

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

 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:序列化二叉树的主要内容,如果未能解决你的问题,请参考以下文章

183132I32II32III24

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

Leetcode二叉树专题(仅需7道题就可以带你入门二叉树基本玩法)

剑指offer-对称的二叉树

283668

剑指Offer对答如流系列 - 序列化二叉树