leetcode 449. Serialize and Deserialize BST 二叉搜索树BST的序列化和反序列化
2017-12-10 09:09
417 查看
Serialization is the process of converting a data structure or object into a sequence of bits so that it can be stored in a file or memory buffer, or transmitted across a network connection link to be reconstructed later in the same or another computer environment.
Design an algorithm to serialize and deserialize a binary search tree. There is no restriction on how your serialization/deserialization algorithm should work. You just need to ensure that a binary search tree can be serialized to a string and this string can be deserialized to the original tree structure.
The encoded string should be as compact as possible.
Note: Do not use class member/global/static variables to store states. Your serialize and deserialize algorithms should be stateless
题意很简单,就是考察二叉搜索树BST的序列化和反序列化
建议和leetcode 331. Verify Preorder Serialization of a Binary Tree 二叉树的前序序列验证 和 leetcode 654. Maximum Binary Tree 构造最大二叉树 一起学习
建议和leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal 中前序构造BST 和 leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal 中后序构造BST 和leetcode 297. Serialize and Deserialize Binary Tree 二叉树的序列化和反序列化 + 深度优先遍历DFS一起学习,疑问做法感觉类似
代码如下:
Design an algorithm to serialize and deserialize a binary search tree. There is no restriction on how your serialization/deserialization algorithm should work. You just need to ensure that a binary search tree can be serialized to a string and this string can be deserialized to the original tree structure.
The encoded string should be as compact as possible.
Note: Do not use class member/global/static variables to store states. Your serialize and deserialize algorithms should be stateless
题意很简单,就是考察二叉搜索树BST的序列化和反序列化
建议和leetcode 331. Verify Preorder Serialization of a Binary Tree 二叉树的前序序列验证 和 leetcode 654. Maximum Binary Tree 构造最大二叉树 一起学习
建议和leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal 中前序构造BST 和 leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal 中后序构造BST 和leetcode 297. Serialize and Deserialize Binary Tree 二叉树的序列化和反序列化 + 深度优先遍历DFS一起学习,疑问做法感觉类似
代码如下:
#include <iostream> #include <vector> #include <map> #include <unordered_map> #include <set> #include <unordered_set> #include <queue> #include <stack> #include <string> #include <climits> #include <algorithm> #include <sstream> #include <functional> #include <bitset> #include <numeric> #include <cmath> #include <regex> using namespace std; /* struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; */ class Codec { public: // Encodes a tree to a single string. string serialize(TreeNode* root) { stringstream ss; serialize(root, ss); return ss.str(); } void serialize(TreeNode* root, stringstream& ss) { if (root==NULL) ss << "# "; else { ss << root->val << " "; serialize(root->left, ss); serialize(root->right, ss); } } // Decodes your encoded data to tree. TreeNode* deserialize(string data) { stringstream ss(data); return deserialize(ss); } TreeNode* deserialize(stringstream& ss) { string val = ""; ss >> val; if (val == "#") return NULL; else { TreeNode* node = new TreeNode(stoi(val)); node->left = deserialize(ss); node->right = deserialize(ss); return node; } } };
相关文章推荐
- [LeetCode] Serialize and Deserialize BST 二叉搜索树的序列化和去序列化
- 【二叉树】树的序列化和反序列化【449. Serialize and Deserialize BST】
- [LeetCode] 297. Serialize and Deserialize Binary Tree 二叉树的序列化和反序列化
- leetcode_middle_32_449. Serialize and Deserialize BST
- LeetCode 297. Serialize and Deserialize Binary Tree(二叉树的序列化和反序列化)
- [leetcode] 449. Serialize and Deserialize BST 解题报告
- LeetCode 树序列化与反序列化[递归]297. Serialize and Deserialize Binary Tree
- leetcode297:二叉树的序列化和反序列化(Serialize and Deserialize Binary Tree)
- [Leetcode] 449. Serialize and Deserialize BST 解题报告
- Leetcode 449. Serialize and Deserialize BST
- LeetCode 449. Serialize and Deserialize BST
- leetcode 297. Serialize and Deserialize Binary Tree 二叉树的序列化和反序列化 + 深度优先遍历DFS
- [leetcode]449. Serialize and Deserialize BST
- Leetcode 449. Serialize and Deserialize BST (Medium) (cpp)
- 449. Serialize and Deserialize BST
- [LeetCode]Serialize and Deserialize BST
- Leetcode 449. 序列化和反序列化二叉搜索树
- [LeetCode] Serialize and Deserialize Binary Tree 二叉树的序列化和去序列化
- Leetcode 449 Serialize and Deserialize BST
- 【LeetCode】449.Serialize and Deserialize BST(Medium)解题报告