给你二叉树的根节点 root
,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
这就是广度优先搜索BFS的基本模板
java
public List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> resList = new ArrayList<>();
if (root == null){
return resList;
}
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()){
ArrayList<Integer> elList = new ArrayList<>();
int size = queue.size();
while (size>0){
TreeNode node = queue.poll();
if (node != null) {
elList.add(node.val);
}
if (node.left != null){
queue.offer(node.left);
}
if (node.right != null){
queue.offer(node.right);
}
size--;
}
resList.add(elList);
}
return resList;
}