zoukankan      html  css  js  c++  java
  • 牛客(61)序列化二叉树

    //    题目描述
    //    请实现两个函数,分别用来序列化和反序列化二叉树
    
        public class TreeNode {
            int val = 0;
            TreeNode left = null;
            TreeNode right = null;
    
            public TreeNode(int val) {
                this.val = val;
    
            }
    
        }
        String Serialize(TreeNode root) {
            StringBuilder stringBuilder = new StringBuilder();
            doSerialize(root,stringBuilder);
            return stringBuilder.toString();
        }
        public void doSerialize(TreeNode root,StringBuilder stringBuilder){
            if (root==null){
                stringBuilder.append("#,");
                return;
            }
            stringBuilder.append(root.val);
            stringBuilder.append(",");
            doSerialize(root.left,stringBuilder);
            doSerialize(root.right,stringBuilder);
        }
        TreeNode Deserialize(String str) {
            if (str==null){
                return null;
            }
            String[] strings = str.split(",");
            return doDeserialize(strings);
        }
        int index = -1;
        public TreeNode doDeserialize(String[] str){
            index ++;
            if (!str[index].equals("#")){
                TreeNode node = new TreeNode(Integer.valueOf(str[index]));
    
                node.left = doDeserialize(str);
    
                node.right= doDeserialize(str);
                return node;
            }
            return null;
        }
  • 相关阅读:
    hdu--4336--概率dp
    hdu--3905--dp
    codeforces--279--
    hdu--5023--线段树
    正则表达式
    vim编辑器使用
    圆头像控件,自动监听点击跳转到Activity
    ImageView切换两种状态下的模式
    string字符串截取
    Class对象获取方法
  • 原文地址:https://www.cnblogs.com/kaibing/p/9132003.html
Copyright © 2011-2022 走看看