序列化二叉树

来源:互联网 发布:数据分析属于什么行业 编辑:程序博客网 时间:2024/05/23 16:07

有关序列化的意思:
http://blog.csdn.net/abc6368765/article/details/51365838

但是题目就只用了一点点意思”
请实现两个函数,分别用来序列化和反序列化二叉树

**题目中序列化的过程就是将一个二叉树对象序列化一个字符串,他的val值用,连接,如果二叉树为空就用”#”;
所谓的反序列化就是将一个字符序列恢复为二叉树对象;**

/*public class TreeNode {    int val = 0;    TreeNode left = null;    TreeNode right = null;    public TreeNode(int val) {        this.val = val;    }}*/public class Solution {  public int index = -1;    String Serialize(TreeNode root) {        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();    }    TreeNode Deserialize(String str) {        index++;        int len = str.length();        if (index >= len) return null;        String[] strr = str.split(",");        TreeNode node = null;        if (!strr[index].equals("#")) {            node = new TreeNode(Integer.valueOf(strr[index]));            node.left = Deserialize(str);            node.right = Deserialize(str);        }        return node;    }}