Leetcode 297. 二叉树的序列化与反序列化
Posted randyniu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 297. 二叉树的序列化与反序列化相关的知识,希望对你有一定的参考价值。
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ #include <stringstream> class Codec { public: void serialize(TreeNode* root, stringstream& ss) { if(root==NULL) { ss<<"*"; return ; } ss<<"n"<<root->val; serialize(root->left, ss); serialize(root->right, ss); } // Encodes a tree to a single string. string serialize(TreeNode* root) { stringstream ss; serialize(root, ss); return ss.str(); } TreeNode* build(stringstream &ss) { char ch; TreeNode *r; ss>>ch; if(ch==‘*‘) { return NULL; } else if(ch==‘n‘) { int x; ss>>x; r = new TreeNode(x); r->left = build(ss); r->right= build(ss); } return r; } // Decodes your encoded data to tree. TreeNode* deserialize(string data) { stringstream ss(data); return build(ss); } }; // Your Codec object will be instantiated and called as such: // Codec codec; // codec.deserialize(codec.serialize(root));
以上是关于Leetcode 297. 二叉树的序列化与反序列化的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 297 二叉树的序列化与反序列化[BFS 二叉树] HERODING的LeetCode之路
LeetCode Java刷题笔记—297. 二叉树的序列化与反序列化