##题目描述
请实现两个函数,分别用来序列化和反序列化二叉树
##解题思路
1,序列化和反序列化都可以通过前序遍历(根左右)来进行
2,序列化遇到null用“#”来标明
3,反序列化的时候遇到“#”则停止
##代码

/**
 * 
 */
package 二叉树;


/**
 * <p>
 * Title:请实现两个函数,分别用来序列化和反序列化二叉树
 * 
 *
 */
public class SerializeAndDeserialize {

	/**
	 * void
	 * 
	 * @param args
	 */
	public String Serialize(TreeNode root) {    //通过前序遍历来序列化二叉树,遇到null值则改为特殊符号
		StringBuffer sb = new StringBuffer();
		if (root == null) {
			sb.append("#,");
			return sb.toString();
		}
		sb.append(root.val + ",");    //根
		sb.append(Serialize(root.left));//左
		sb.append(Serialize(root.right));//右
		return sb.toString();
	

	}
    public int index =-1;
	public TreeNode Deserialize(String str) {
		index++;
		int len = str.length();
		if(index>=len){       
			return null;    //index从0开始,到末尾结束
		}
		String[] strs = str.split(",");  //把字符串按照“,”分隔开
		TreeNode node =null;
		if(!strs[index].equals("#")){
			node = new TreeNode(Integer.valueOf(strs[index]));
			node.left =Deserialize(str);
			node.right = Deserialize(str);
		}
		return node;

	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}