当前位置: 代码迷 >> 综合 >> Leetcode 297. Serialize and Deserialize Binary Tree
  详细解决方案

Leetcode 297. Serialize and Deserialize Binary Tree

热度:81   发布时间:2023-12-12 21:23:45.0

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. Description

Serialize and Deserialize Binary Tree

2. Solution

/*** Definition for a binary tree node.* 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) {ostringstream out;serialize(root, out);return out.str();}// Decodes your encoded data to tree.TreeNode* deserialize(string data) {istringstream in(data);return deserialize(in);}private:void serialize(TreeNode* root, ostringstream& out) {if(!root) {out << "# ";return;}out << root->val << " ";serialize(root->left, out);serialize(root->right, out); }TreeNode* deserialize(istringstream& in) {string val;in >> val;if(val == "#") {return NULL;}TreeNode* root = new TreeNode(stoi(val));root->left = deserialize(in);root->right = deserialize(in);return root;}
};// Your Codec object will be instantiated and called as such:
// Codec codec;
// codec.deserialize(codec.serialize(root));

Reference

  1. https://leetcode.com/problems/serialize-and-deserialize-binary-tree/description/
  相关解决方案