Leetcode 297. Serialize and Deserialize Binary Tree | | Leetcode 297. Serialize and Deserialize Binary Tree 文章作者:Tyan博客:noahsnail.com | CSDN | 简书 1. Description 2. Solution1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253/** * 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 https://leetcode.com/problems/serialize-and-deserialize-binary-tree/description/ 如果有收获,可以请我喝杯咖啡! 赏 微信打赏 支付宝打赏