java面試題(劍指offer):序列化二叉樹

請實現兩個函數,分別用來序列化和反序列化二叉樹
/*
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) {
        String s="";
        if(root==null){
            s=s+"#,";
            return s;
        }
        s=root.val+",";
        s=s+ Serialize(root.left)+Serialize(root.right);
        return s;
       
  }
    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;
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章