您的位置:首页 > 其它

Serialize and DeSerialize

2017-03-15 22:20 239 查看
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);
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: