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

[剑指Offer] 61.序列化二叉树

时间:2017-04-16 19:32:19      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:ret   har   tle   null   decode   val   ++   style   int   

题目描述

请实现两个函数,分别用来序列化和反序列化二叉树

 1 /*
 2 struct TreeNode {
 3     int val;
 4     struct TreeNode *left;
 5     struct TreeNode *right;
 6     TreeNode(int x) :
 7             val(x), left(NULL), right(NULL) {
 8     }
 9 };
10 */
11 class Solution
12 {
13 public:
14     char* Serialize(TreeNode* root)
15     {
16         if (root == NULL)
17         {
18             return "#";
19         }
20         string cur_val = to_string(root->val);
21         cur_val += !;
22         char* left = Serialize(root->left);
23         char* right = Serialize(root->right);
24         char* ret = new char[strlen(left) + strlen(right) + cur_val.size()];
25         strcpy(ret, cur_val.c_str());
26         strcat(ret, left);
27         strcat(ret, right);
28         return ret;
29     }
30     TreeNode* Deserialize(char* str)
31     {
32         return Decode(str);
33     }
34     TreeNode* Decode(char*& str)
35     {
36         if (*str == #)
37         {
38             str ++;
39             return NULL;
40         }
41         string val;
42         while (*str != !)
43         {
44             val += *str;
45             ++str;
46         }
47         TreeNode* new_node = new TreeNode(stoi(val));
48         ++str;
49         new_node->left = Decode(str);
50         new_node->right = Decode(str);
51 
52         return new_node;
53     }
54 };

 

[剑指Offer] 61.序列化二叉树

标签:ret   har   tle   null   decode   val   ++   style   int   

原文地址:http://www.cnblogs.com/lca1826/p/6718990.html

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