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();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);17
// Decodes your encoded data to tree.18
public TreeNode deserialize(String data) {19
if (data.isEmpty()) return null;21
String[] dataArr = data.split(",");23
TreeNode root = new TreeNode(Integer.parseInt(dataArr[0]));25
for (int i = 1; i < dataArr.length; i++) insert(Integer.parseInt(dataArr[i]), root);30
private void insert(int digit, TreeNode root) {32
if (digit > root.val) {33
if (root.right != null) insert(digit, root.right);34
else root.right = new TreeNode(digit);36
if (root.left != null) insert(digit, root.left);37
else root.left = new TreeNode(digit);