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

剑指offer---序列化二叉树

时间:2017-08-02 00:30:20      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:new   public   二叉树   nbsp   ==   tree   class   --   roo   

/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};
*/


class Solution {
public:
    void serializeHelper(TreeNode *node, string& s)
    {
        if (node == NULL)
        {
            s.push_back(N);
            s.push_back(,);
            return;
        }
        s += to_string(node->val);
        s.push_back(,);
        serializeHelper(node->left, s);
        serializeHelper(node->right, s);
    }
    char* Serialize(TreeNode *root)
    {
        if (root == NULL)
            return NULL;
        string s = "";
        serializeHelper(root, s);
 
        char *ret = new char[s.length() + 1];
        strcpy(ret, s.c_str());
        return ret;
    }
     
    TreeNode *deserializeHelper(string &s)
    {
        if (s.empty()) 
            return NULL;
        if (s[0] == N)
        {
            s = s.substr(2);
            return NULL;
        }
        TreeNode *ret = new TreeNode(stoi(s));
        s = s.substr(s.find_first_of(,) + 1);
        ret->left = deserializeHelper(s);
        ret->right = deserializeHelper(s);
        return ret;
    }
     
    TreeNode* Deserialize(char *str) 
    {
        if (str == NULL)
            return NULL;
        string s(str);
        return deserializeHelper(s);
    }
};

我还是喜欢用vector做

剑指offer---序列化二叉树

标签:new   public   二叉树   nbsp   ==   tree   class   --   roo   

原文地址:http://www.cnblogs.com/159269lzm/p/7271454.html

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