二叉树的序列化和反序列化
来源:互联网 发布:开发长沙软件外包 编辑:程序博客网 时间:2024/06/10 15:16
采用的是先序遍历
/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this->val = val; * this->left = this->right = NULL; * } * } */class Solution { deque<string> Slipt(const string &res,const string &des){ deque<string> re; int left=0; int right=0; while((right=res.find(des,left))!=string::npos){ re.push_back(res.substr(left,right-left)); left=right+1; } return re; }public: string serialize(TreeNode *root) { if(root==nullptr) return "#!"; string cur=root->val+"!"; cur+=serialize(root->left); cur+=serialize(root->right); return cur; } TreeNode *deserialize(deque<string> &hold){ string temp=hold.front(); hold.pop_front(); if(temp=="#") return nullptr; TreeNode *root = new TreeNode(stoi(temp)); root->left=deserialize(hold); root->right=deserialize(hold); return root; } TreeNode *deserialize(string data) { if(data.empty()) return nullptr; deque<string> hold=Slipt(data,"!"); return deserialize(hold); }};
0 0
- 题目:二叉树的序列化和反序列化
- 二叉树的序列化和反序列化
- 二叉树的序列化和反序列化
- 二叉树的序列化和反序列化
- 二叉树的序列化和反序列化
- 二叉树的序列化和反序列化
- 二叉树的序列化和反序列化
- 二叉树的序列化和反序列化
- 二叉搜索树的序列化和反序列化
- 二叉树的序列化和反序列化
- lintcode,二叉树的序列化和反序列化
- 二叉树的序列化和反序列化
- 二叉树的序列化和反序列化
- 二叉树的序列化和反序列化
- 二叉树的序列化和反序列化
- 二叉树的序列化和反序列化
- 【二叉树】二叉树序列化和反序列化
- 序列化二叉树(二叉树的序列化和反序列化)
- Python 基础——tuple与list、append与extend
- C++学习笔记-- 预编译指令
- 闲聊 - chrome自定义搜索
- 设计模式---生活例子
- NetFPGA安装及配置
- 二叉树的序列化和反序列化
- Visual EmbedLinux Tools:让vs支持嵌入式Linux开发
- 免费DDOS攻击测试工具大合集
- NYOJ20 吝啬的国度
- poj 3784 带插入的动态查询中位数
- "library not found for - "解决办法
- Scala实践
- 颜文字
- iOS开发---C语言简介