107. 二叉树的层次遍历 II

很简单,先从上到下层次遍历,
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;
}
}

浙公网安备 33010602011771号