| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | 
							- /**
 
-  * Definition for a binary tree node.
 
-  * public class TreeNode {
 
-  *     int val;
 
-  *     TreeNode left;
 
-  *     TreeNode right;
 
-  *     TreeNode(int x) { val = x; }
 
-  * }
 
-  */
 
- public class Codec {
 
-     // Encodes a tree to a single string.
 
-     public String serialize(TreeNode root) {
 
-         if (root == null) return "nil";
 
-         StringBuilder sb = new StringBuilder();
 
-         sb.append(Integer.toString(root.val));
 
-         LinkedList<TreeNode> list = new LinkedList<>();
 
-         list.add(root.left);
 
-         list.add(root.right);
 
-         while (list.size() != 0) {
 
-             TreeNode node = list.poll();
 
-             if (node == null) {
 
-                 sb.append(",nil");
 
-             } else {
 
-                 sb.append(',');
 
-                 sb.append(Integer.toString(node.val));
 
-                 list.add(node.left);
 
-                 list.add(node.right);
 
-             }
 
-         }
 
-         return sb.toString();
 
-     }
 
-     // Decodes your encoded data to tree.
 
-     public TreeNode deserialize(String data) {
 
-         if (data.equals("nil")) return null;
 
-         String[] strs = data.split(",");
 
-         TreeNode root = new TreeNode(Integer.parseInt(strs[0]));
 
-         LinkedList<TreeNode> list = new LinkedList<>();
 
-         list.add(root);
 
-         for (int i = 1; i < strs.length; i++) {
 
-             TreeNode node = list.poll();
 
-             if (!strs[i].equals("nil")) {
 
-                 node.left = new TreeNode(Integer.parseInt(strs[i]));
 
-                 list.add(node.left);
 
-             }
 
-             if (!strs[++i].equals("nil")) {
 
-                 node.right = new TreeNode(Integer.parseInt(strs[i]));
 
-                 list.add(node.right);
 
-             }
 
-         }
 
-         return root;
 
-     }
 
- }
 
- // Your Codec object will be instantiated and called as such:
 
- // Codec codec = new Codec();
 
- // codec.deserialize(codec.serialize(root));
 
 
  |