🐕 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
示例:
二叉树:[3,9,20,null,null,15,7]
![在这里插入图片描述](https://img-blog.csdnimg.cn/4d913cb32b87499d9f2f672f13abae42.png)
返回其层序遍历结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/fdcf0bc51b784ca8a6a30ba74a361681.png)
思路:一层层打印 明显就在考你 BFS
整一个List集合 元素是 List,
然后宽度优先遍历 每一层存入一个list add进 List中
上代码
public static List<List<Integer>> levelOrder(TreeNode root) {
if(root == null) {
return new ArrayList<List<Integer>>();
}
List<List<Integer>> list = new ArrayList<List<Integer>>();
Queue<TreeNode> queue = new LinkedList<>();
queue.add(root);
while(!queue.isEmpty()) {
List<Integer> temp = new ArrayList<Integer>();
int size = queue.size();
while(size -- > 0) {
TreeNode poll = queue.poll();
temp.add(poll.val);
if(poll.left != null) {
queue.add(poll.left);
}
if(poll.right != null) {
queue.add(poll.right);
}
}
list.add(temp);
}
return list;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/d70eac09b2ed4b4c9092e9926f9e5b74.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBASGFpYmFyYSAtIEFp,size_20,color_FFFFFF,t_70,g_se,x_16)