劍指Offer學習-面試題37:序列化與反序列化二叉樹

	/**
     * 反序列化二叉樹
     *
     * @param s
     */
    public TreeNode deSerialize(String s) {
        if (s.charAt(index) != '$') {
            TreeNode root = new TreeNode(s.charAt(index));
            index++;
            root.left = deSerialize(s);
            index++;
            root.right = deSerialize(s);
            return root;
        }
        return null;

    }

    static int index = 0;

    /**
     * 序列化二叉樹
     *
     * @param root
     */
    public String serialize(TreeNode root) {
        StringBuffer sb = new StringBuffer();
        serialize(root, sb);
        return sb.toString();

    }

    public void serialize(TreeNode root, StringBuffer sb) {
        if (root == null) {
            sb.append("$");
            return;
        }
        sb.append(root.val);
        serialize(root.left, sb);
        serialize(root.right, sb);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章