码迷,mamicode.com
首页 > 其他好文 > 详细

63.序列化二叉树

时间:2019-06-01 23:21:14      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:不为   res   serial   length   spl   分析   java   就是   pre   

题目描述:

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

思路分析:

??序列化指的就是,将二叉树转化为字符串序列,反序列化指的就是将字符串转化为二叉树。我们可以用先序遍历将二叉树转化为字符串,遇见节点为空记做 #!,不为空记做 num!。同样的我们可以用先序遍历的方法重建二叉树。

代码:

import java.util.*;
/*
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

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

    }

}
*/
public class Solution {
    String Serialize(TreeNode root) {
        if(root==null)
            return "#!";
        String res="";
        res=res+root.val+"!";
        res=res+Serialize(root.left);
        res=res+Serialize(root.right);
        return res;
  }
    public TreeNode Deserialize(String str){
        Queue<String>q=new LinkedList<>();
        String []s=str.split("!");
        for(int i=0;i<s.length;i++){
            q.offer(s[i]);
        }
        return reconstructTree(q);
    }
    public TreeNode reconstructTree(Queue<String>q) {
        String s=q.poll();
        if(s.equals("#"))
            return null;
        TreeNode pRoot=new TreeNode(Integer.valueOf(s));
        pRoot.left=reconstructTree(q);
        pRoot.right=reconstructTree(q);
        return pRoot;
  }
}

63.序列化二叉树

标签:不为   res   serial   length   spl   分析   java   就是   pre   

原文地址:https://www.cnblogs.com/yjxyy/p/10961309.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!