//注意的就是在循环中最后不要以queue.size()作为条件,因为有add,poll操作 长度会变
public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) {
// write code here
ArrayList<ArrayList<Integer>> res=new ArrayList<ArrayList<Integer>>();
if(root==null) return res;
Queue<TreeNode> queue=new LinkedList<>();
queue.add(root);
while(queue.size()>0){
ArrayList<Integer> temp=new ArrayList<>();
int len=queue.size();
for(int i=0;i<len;i++){
TreeNode t=queue.poll();
if(t.left!=null) queue.add(t.left);
if(t.right!=null) queue.add(t.right);
temp.add(t.val);
}
res.add(temp);
}
return res;
}
京公网安备 11010502036488号