/* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { //序列化:把对象序列装换成字节序列 String Serialize(TreeNode root) { if(root==null){ return ""; } StringBuffer sb = new StringBuffer(); serializeRes(root,sb); return sb.toString(); } public static void serializeRes(TreeNode root,StringBuffer sb){ if(root == null){ sb.append("$,"); return ; } sb.append(root.val); sb.append(','); serializeRes(root.left,sb); serializeRes(root.right,sb); } //反序列化:把字节序列恢复为对象的过程 TreeNode Deserialize(String str) { if(str.length() == 0){ return null; } String[] string = str.split(","); return deserializeMethod(string); } int index = -1; TreeNode deserializeMethod(String[] string){ index++; if(!(string[index].equals("$"))){ TreeNode node = new TreeNode(0); node.val = Integer.parseInt(string[index]); node.left = deserializeMethod(string); node.right = deserializeMethod(string); return node; } return null; } }