zoukankan      html  css  js  c++  java
  • leetcode 297. Serialize and Deserialize Binary Tree

    可以用bfs,先序中序后序4种解法

    我觉得bfs比较好写,所以就用了bfs

    public class Codec {
    
        // Encodes a tree to a single string.
        public String serialize(TreeNode root) {
            if(root == null)
                return "";
            StringBuilder str = new StringBuilder();
            
            Queue<TreeNode> q = new LinkedList<>();
            
            q.offer(root);
            while(!q.isEmpty()){
                    TreeNode cur = q.poll();
                    if(cur != null){
                        q.offer(cur.left);
                        q.offer(cur.right);
                        str.append(cur.val + " ");
                    }else{
                        str.append("null ");
                    }
            }
            return str.toString();
        }
    
        // Decodes your encoded data to tree.
        public TreeNode deserialize(String data) {
            if(data == "")
                return null;
            String[] str = data.split(" ");
            Queue<TreeNode> q = new LinkedList<>();
            
            TreeNode cur = new TreeNode(Integer.parseInt(str[0]));
            q.offer(cur);
            
            for(int i=1; i<str.length; i++){
                TreeNode parent = q.poll();
                if(!str[i].equals("null")){
                    TreeNode left = new TreeNode(Integer.parseInt(str[i]));
                    parent.left = left;
                    q.offer(left);
                }
                
                if(!str[++i].equals("null")){
                    TreeNode right = new TreeNode(Integer.parseInt(str[i]));
                    parent.right = right;
                    q.offer(right);
                }
            }
            return cur;
            
        }
    }
  • 相关阅读:
    微信定制开发怎么做?
    bzoj4069【APIO2015】巴厘岛的雕塑
    bzoj3174【TJOI2013】解救小矮人
    bzoj3531【SDOI2014】旅行
    单例模式
    JDK自带的定时任务
    centos6下手工编译vitess
    Rocchio算法
    Excel如何查找名字重复的数据
    MyEclipse8.5快速搭建SSH框架
  • 原文地址:https://www.cnblogs.com/hwd9654/p/11374861.html
Copyright © 2011-2022 走看看