1
public class Codec {
2

3
// Encodes a tree to a single string.
4
public String serialize(TreeNode root) {
5
StringBuilder string = new StringBuilder();
6
traverse(root, string);
7
return string.toString();
8
}
9

10
private void traverse(TreeNode root, StringBuilder string) {
11
if (root == null) return;
12
string.append(root.val).append(",");
13
traverse(root.left, string);
14
traverse(root.right, string);
15
}
16

17
// Decodes your encoded data to tree.
18
public TreeNode deserialize(String data) {
19
if (data.isEmpty()) return null;
20

21
String[] dataArr = data.split(",");
22

23
TreeNode root = new TreeNode(Integer.parseInt(dataArr[0]));
24

25
for (int i = 1; i < dataArr.length; i++) insert(Integer.parseInt(dataArr[i]), root);
26

27
return root;
28
}
29

30
private void insert(int digit, TreeNode root) {
31

32
if (digit > root.val) {
33
if (root.right != null) insert(digit, root.right);
34
else root.right = new TreeNode(digit);
35
} else {
36
if (root.left != null) insert(digit, root.left);
37
else root.left = new TreeNode(digit);
38
}
39
}
40
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0