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

/*
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;
    }
               
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容