思路:利用一个队列,队列每次记录二叉树一层的大小,每次遍历一个节点时,将它的存在的左节点和右节点,存放到队列中
class Solution {
public List> levelOrder(TreeNode root) {
if(root == null){
return new ArrayList<>();
}
List> res = new ArrayList<>(); //存放总结果
Queue queue = new LinkedList(); //创建一个队列
queue.add(root);
while(!queue.isEmpty()){
int count = queue.size(); //队列的大小
List list = new ArrayList(); //存放每一层结果
while(count > 0){
TreeNode node = queue.poll();
list.add(node.val);
if(node.left != null){
queue.add(node.left);
}
if(node.right != null){
queue.add(node.right);
}
count--;
}
res.add(list);
}
return res;
}
}



