JZ37 序列化二叉树

网友投稿 673 2022-10-18

JZ37 序列化二叉树

JZ37 序列化二叉树

/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: char* Serialize(TreeNode *root) { if(!root) { return "#"; } string res = to_string(root->val); res.push_back(','); char* left = Serialize(root->left); char* right = Serialize(root->right); char* ret = new char[strlen(left) + strlen(right) + res.size()]; strcpy(ret, res.c_str()); strcat(ret, left); strcat(ret, right); return ret; } TreeNode* reb (char *&s) { if (*s == '#') { s++; return NULL; } int num = 0; while (*s != ',') { num = num * 10 + (*s - '0'); s ++; } s ++; TreeNode* root = new TreeNode(num); root->left = reb(s); root->right = reb(s); return root; } TreeNode* Deserialize(char *str) { return reb(str); }};

先先序遍历保存下来,然后先序遍历恢复。长的一样

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:IT Mill Toolkit- RIA开发框架
下一篇:牛牛做数论
相关文章

 发表评论

暂时没有评论,来抢沙发吧~