众所周知,这题两行就够了
首先是序列化
任何一个指针都有自己的地址,可以用$(unsigned\ long\ long)root$来获取到这个地址
不过因为要求返回一个$string$类型,所以可以用$to\text{_}string$将其转换为$string$类型
代码:
// Encodes a tree to a single string.
string serialize(TreeNode* root) {
return to_string((unsigned long long)root);
}
其次是反序列化
可以通过$stoll$函数将地址的$string$形式转换回$long\ long$
然后把$long\ long$转换回$TreeNode*$指针
代码:
// Decodes your encoded data to tree.
TreeNode* deserialize(string data) {
return (TreeNode*)stoll(data);
}
全部代码:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
// Encodes a tree to a single string.
string serialize(TreeNode* root) {
return to_string((unsigned long long)root);
}
// Decodes your encoded data to tree.
TreeNode* deserialize(string data) {
return (TreeNode*)stoll(data);
}
};
np
佬!!!!!
这个写法还是挺作弊的,只是真的很简单(