美文网首页工作生活
剑指offer最优解Java版-序列化二叉树

剑指offer最优解Java版-序列化二叉树

作者: 全菜工程师小辉 | 来源:发表于2019-07-17 12:27 被阅读0次

    剑指offer专题地址

    剑指offer索引地址

    题目描述

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

    解决方法:递归

    先序遍历序列化二叉树。

    class TreeNode {
        int      val   = 0;
        TreeNode left  = null;
        TreeNode right = null;
    
        public TreeNode(int val) {
            this.val = val;
        }
    }
    public class Solution {
        public int index = -1;
    
        String Serialize(TreeNode root) {
            StringBuffer sb = new StringBuffer();
            if (root == null) {
                sb.append("#,");
                return sb.toString();
            }
            sb.append(root.val + ",");
            sb.append(Serialize(root.left));
            sb.append(Serialize(root.right));
            return sb.toString();
        }
    
        TreeNode Deserialize(String str) {
            index++;
            int len = str.length();
            if (index >= len) {
                return null;
            }
            String[] strs = str.split(",");
            TreeNode node = null;
            if (!strs[index].equals("#")) {
                node = new TreeNode(Integer.valueOf(strs[index]));
                node.left = Deserialize(str);
                node.right = Deserialize(str);
            }
            return node;
        }
    }
    
    哎呀,如果我的名片丢了。微信搜索“全菜工程师小辉”,依然可以找到我

    相关文章

      网友评论

        本文标题:剑指offer最优解Java版-序列化二叉树

        本文链接:https://www.haomeiwen.com/subject/jvticctx.html