zoukankan      html  css  js  c++  java
  • 剑指offer---序列化二叉树

    /*
    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做

  • 相关阅读:
    element-ui upload组件 on-change事件 传自定义参数
    Javascript Object 常用方法大全
    js 数组操作
    js的Dom操作
    js指引提示-下一步-下一步
    图片右上角添加标签
    自己平时遇到的问题---记录篇
    css的书写顺序
    WebSocket使用
    15个常用的javaScript正则表达式
  • 原文地址:https://www.cnblogs.com/159269lzm/p/7271454.html
Copyright © 2011-2022 走看看