Skip to content

Commit a8af0f7

Browse files
committed
Feat: #288
1 parent 772850f commit a8af0f7

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
class Codec {
2+
public:
3+
string serialize(TreeNode* root) {
4+
string res;
5+
dfs(root, res);
6+
return res;
7+
}
8+
9+
TreeNode* deserialize(string data) {
10+
istringstream iss(data);
11+
return dfs(iss);
12+
}
13+
14+
private:
15+
void dfs(TreeNode* node, string& res) {
16+
if (!node) {
17+
res += "N,";
18+
return;
19+
}
20+
res += to_string(node->val) + ",";
21+
dfs(node->left, res);
22+
dfs(node->right, res);
23+
}
24+
25+
TreeNode* dfs(istringstream& iss) {
26+
string val;
27+
getline(iss, val, ','); // ','를 기준으로 하나씩 읽음
28+
if (val == "N") return nullptr;
29+
30+
TreeNode* node = new TreeNode(stoi(val));
31+
node->left = dfs(iss);
32+
node->right = dfs(iss);
33+
return node;
34+
}
35+
};

0 commit comments

Comments
 (0)