LeetCode 107 Binary Tree Level Order Traversal II

来源:互联网 发布:单片机与串口调试助手 编辑:程序博客网 时间:2024/06/05 16:39

题目描述

Given a binary tree, return the bottom-up level order traversal of its nodes’ values. (ie, from left to right, level by level from leaf to root).

For example:
Given binary tree {3,9,20,#,#,15,7},

这里写图片描述

return its bottom-up level order traversal as:

[
[15,7],
[9,20],
[3]
]

分析

参考:LeetCode 102 Binary Tree Level Order Traversal

只是在返回result前,加入一句话

Collections.reverse(result);

代码

    public static List<List<Integer>> levelOrderBottom(TreeNode root) {        List<List<Integer>> result = new ArrayList<List<Integer>>();        if (root == null) {            return result;        }        final TreeNode END = new TreeNode(0);        Deque<TreeNode> deque = new LinkedList<TreeNode>();        List<Integer> level = new LinkedList<Integer>();        deque.add(root);        deque.add(END);        while (!deque.isEmpty()) {            TreeNode p = deque.pop();            if (p == END) {                result.add(new ArrayList<Integer>(level));                level.clear();                if (!deque.isEmpty()) {                    deque.add(END);                }            } else {                level.add(p.val);                if (p.left != null) {                    deque.add(p.left);                }                if (p.right != null) {                    deque.add(p.right);                }            }        }        Collections.reverse(result);        return result;    }
0 0
原创粉丝点击