给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
示例:
二叉树:[3,9,20,null,null,15,7],
返回其层序遍历结果:
[ [3], [9,20],[15,7]]
//借助队列先进先出的特点
public List<List<Integer>> levelOrder(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
List<List<Integer>> lList = new ArrayList<>();
while(!queue.isEmpty()) {
int size=queue.size();//记录每层元素的数量遍历到list中
List<Integer> list = new ArrayList<>();
for(int i=0;i<size;i++){
TreeNode node = queue.peek();
queue.poll();
if(node!=null){
list.add(node.val);
queue.offer(node.left);
queue.offer(node.right);
}
}
if(list.size()!=0){
lList.add(list);
}
}
return lList;
}