很简单,先从上到下层次遍历,
Collections.reverse(res);反转List就行
class Solution {//先层次遍历,每一层的结果放在一个集合里,最后把大的集合翻转过来 public List<List<Integer>> levelOrderBottom(TreeNode root) { List<List<Integer>> res=new ArrayList<List<Integer>>(); Queue<TreeNode> queue=new LinkedList<TreeNode>(); if(root==null) return res; queue.add(root);//入队 int leavel=0; while(!queue.isEmpty()) { res.add(new ArrayList<Integer>());//空队列 int len=queue.size(); for(int i=0;i<len;i++) { TreeNode n=queue.remove();//出队列 res.get(leavel).add(n.val); if(n.left!=null) queue.add(n.left); if(n.right!=null) queue.add(n.right); } leavel++; } Collections.reverse(res); return res; } }