点击打开链接
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) {
if(!root) return " #";
string ans = " "+to_string(root->val);
return ans + serialize(root->left) + serialize(root->right);
}
TreeNode* dfs(istringstream& is)
{
string str;
is >> str;
if(str=="#") return NULL;
TreeNode* root = new TreeNode(stoi(str)); //string to int
root->left = dfs(is), root->right = dfs(is);
return root;
}
// Decodes your encoded data to tree.
TreeNode* deserialize(string data) {
istringstream is(data);
return dfs(is);
}
};