二叉树的序列化和反序列化

2019-06-05  本文已影响0人  quiterr
/*
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
import java.lang.StringBuffer;
public class Solution {
    String Serialize(TreeNode root) {
        StringBuffer sb = new StringBuffer();
        if(root==null){
            sb.append('#');
            sb.append(' ');
        }else{
            sb.append(root.val);
            sb.append(' ');
            String left = Serialize(root.left);
            String right = Serialize(root.right);
            sb.append(left);
            sb.append(right);
        }
        return sb.toString();
  }
     TreeNode Deserialize(String str) {
        String[] strs = str.split(" ");
        return Deserialize(strs);

    }
    int index = -1;
     TreeNode Deserialize(String[] strs) {
         index++;
        if(strs[index].equals("#") || index>(strs.length-1)){
            return null;
        }
        TreeNode root = new TreeNode(Integer.parseInt(strs[index]));
        
        root.left = Deserialize(strs);
        
        root.right = Deserialize(strs);
        return root;
    }
               
}
上一篇 下一篇

猜你喜欢

热点阅读