Serialize and DeSerialize

来源:互联网 发布:网络虐文作家排行榜 编辑:程序博客网 时间:2024/06/03 18:54
class Solution {private:    void serializehelper(TreeNode *root,vector<int> &v)    {        if(root==NULL)        {            v.push_back(0x23333333);            return;        }        v.push_back(root->val);        serializehelper(root->left,v);        serializehelper(root->right,v);    }    TreeNode* deserializehelper(int *&p)    {        if(*p==0x23333333) {            p++;            return NULL;        }        TreeNode *ret=new TreeNode(*p);        p++;        ret->left=deserializehelper(p);        ret->right=deserializehelper(p);        return ret;    }public:    char* Serialize(TreeNode *root) {        vector<int>v;        serializehelper(root,v);        int *numbers=new int[v.size()];        for(int i=0;i<v.size();i++)        {            numbers[i]=v[i];        }        return (char*)numbers;    }    TreeNode* Deserialize(char *str) {        int *p=(int *)str;        return deserializehelper(p);    }};
1 0