zoukankan      html  css  js  c++  java
  • 二叉树的序列化和反序列化(Java)

    请实现两个函数,分别用来序列化和反序列化二叉树

    序列化就是将二叉树以字符串输出,反序列化:根据自己输出的字符串,构建二叉树。

    这里先序遍历输出,且为了方便反序列化,各个节点“,”隔开,且叶子节点后用"#,"隔开

    /*

    public class TreeNode {

        int val = 0;

        TreeNode left = null;

        TreeNode right = null;

     

        public TreeNode(int val) {

            this.val = val;

     

        }

     

    }

    */

    public class Solution {

        int index;

        String Serialize(TreeNode root) {

            StringBuilder sb=new StringBuilder();

            if(root==null)

                return "#,";

            sb.append(root.val+",");

            sb.append(Serialize(root.left));

            sb.append(Serialize(root.right));

            return sb.toString();

      }

        TreeNode Deserialize(String str) {

            if(str==null)

                return null;

           

           index=-1;

           

            String[] ss=str.split(",");

            return DeserializeStr(ss);

      }

        public TreeNode DeserializeStr(String[] ss){

            index++;

            TreeNode node=null;

            if(!ss[index].equals("#")){

                node=new TreeNode(Integer.valueOf(ss[index]));

                node.left=DeserializeStr(ss);

                node.right=DeserializeStr(ss);

            }

           

            return node;

        }

    }

  • 相关阅读:
    磁盘调度算法
    Maven 的 学习笔记
    文档结构
    变量
    进入SQL*Plus环境 (常用命令)
    PAT甲级 1050 String Subtraction (20分)(当读一行时(gets用不了))
    PAT甲级 1095 Cars on Campus (30分)(map + 排序)
    图书管理系统
    学生成绩管理系统
    磁盘调度算法
  • 原文地址:https://www.cnblogs.com/xiaolovewei/p/8025262.html
Copyright © 2011-2022 走看看