LeetCode-Binary Tree Level Order Traversal II

来源:互联网 发布:sql的delete 编辑:程序博客网 时间:2024/06/01 09:36

唯一和上一个题不同的就是要倒序输出层,从底层开始。只需要改一个小地方就是最后将每层list add到大list时候,用add(0,list),即add到第一位。

public class Solution {    public List<List<Integer>> levelOrderBottom(TreeNode root) {        Queue<TreeNode> que = new LinkedList<TreeNode>();        List<List<Integer>> ans = new ArrayList<List<Integer>>();        if(root == null)            return ans;        que.offer(root);        while( !que.isEmpty()){            int num = que.size();            List<Integer> list = new ArrayList<Integer>();            for( int i = 0; i < num; i++ ){                if(que.peek().left!= null)                    que.offer(que.peek().left);                if(que.peek().right != null)                    que.offer(que.peek().right);                list.add(que.poll().val);            }            ans.add(0,list);        }        return ans;            }}


0 0