LeetCode - бинарное дерево уровня порядок-обход-II

Вопрос: Принимая во внимание бинарное дерево, бинарное дерево , возвращенное от дна к верхней последовательности обхода, (слева направо, от узла листа к корню, траверса один уровень)
Например:
дано двоичный {3,9 , 20, #, #, 15,7},
3↵ / 20↵ ↵. 9/15. 7 ↵
результат двоичного обхода дерева от дна к последовательности верхнего слоя
[↵ [15,7] ↵ [9,20 ], ↵ [3], ↵]
Если вы не знаете , «{1, # 2, 3}» означает, то прочитайте
OJ методом двоичной последовательности:
последовательность двоичного дерева последовательности обхода следовать принципу " # «представляет собой конечное положение представляет собой путь ниже узел больше не существует.
Например:
1↵ / ↵ 2 3↵ / 4↵ ↵ ↵ 5.
Описанный выше , является результатом двоичной последовательности: "{л, 2,3, #, # ,. 4, #, # ,. 5}."
Ответ: Последовательность проходя каждое дополнение к позиции 0

    public ArrayList<ArrayList<Integer>> levelOrderBottom(TreeNode root) {
        Queue<TreeNode> queue = new LinkedList<TreeNode>();
        ArrayList<ArrayList<Integer>> wrapList = new ArrayList<ArrayList<Integer>>();

        if(root == null) return wrapList;

        queue.offer(root);
        while(!queue.isEmpty()){
            int levelNum = queue.size();
            ArrayList<Integer> subList = new ArrayList<Integer>();
            for(int i=0; i<levelNum; i++) {
                if(queue.peek().left != null) queue.offer(queue.peek().left);
                if(queue.peek().right != null) queue.offer(queue.peek().right);
                subList.add(queue.poll().val);
            }
            //每次将结果保存到下标为0的位置
            wrapList.add(0, subList);
        }
        return wrapList;
    }

рекомендация

отwww.cnblogs.com/xym4869/p/12517807.html