Skip to content

Commit b4737e0

Browse files
committed
solve serialize and deserialize binary tree
1 parent f8876eb commit b4737e0

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
public class Codec {
2+
public String serialize(TreeNode root) {
3+
if (root == null) {
4+
return "N";
5+
}
6+
String left = serialize(root.left);
7+
String right = serialize(root.right);
8+
return root.val + "," + left + "," + right;
9+
}
10+
11+
public TreeNode deserialize(String data) {
12+
Deque<String> values = new ArrayDeque<>(Arrays.asList(data.split(",")));
13+
return dfs(values);
14+
}
15+
16+
private TreeNode dfs(Deque<String> values) {
17+
String value = values.pollFirst();
18+
if (value.equals("N")) {
19+
return null;
20+
}
21+
TreeNode node = new TreeNode(Integer.parseInt(value));
22+
node.left = dfs(values);
23+
node.right = dfs(values);
24+
return node;
25+
}
26+
}
27+

0 commit comments

Comments
 (0)