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;

        }

    }

  • 相关阅读:
    Java Native Method
    SQL语句优化
    Ibatis的环境搭建以及遇到的问题解决
    Java 构建器
    SpringMVC自定义视图 Excel视图和PDF视图
    java 枚举的常见使用方法
    mysql 根据某些字段之和排序
    MFC The Screen Flickers When The Image Zoomed
    How To Debug Qmake Pro File
    Gcc And MakeFile Level1
  • 原文地址:https://www.cnblogs.com/xiaolovewei/p/8025262.html
Copyright © 2011-2022 走看看