1 public static TreeNode DeSerilize(ArrayList<String>res,int[] i){
2 if(res.get(i[0]).equals("#")||i[0]==res.size()) return null;
3 TreeNode root = new TreeNode (Integer.valueOf(res.get(i[0])));
4 ++i[0];
5 root.left = DeSerilize(res,i);
6 ++i[0];
7 root.right = DeSerilize(res,i);
8 return root;
9 }
10 public static void Serilize(TreeNode root, ArrayList<String>res){
11 if(root==null){
12 res.add("#");
13 return;
14 }
15 res.add(String.valueOf(root.val));
16 Serilize(root.left,res);
17 Serilize(root.right,res);
18 }