1、题目描述:
2、思路分析:
本题考查的就是层序遍历,但是与之前的题不同的是,本题返回的是一个数组,因此需要将集合转换为数组后再返回。
3、代码实现:
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
class Solution {
public int[] levelOrder(TreeNode root) {
/**
* 本题考查的就是二叉树的层序遍历,按照每一层进行遍历,bfs
* 1、先按层序遍历写出来,队列
* 2、将集合转换成数组
*/
if(root==null) return new int[0];
List<Integer> list = new ArrayList<>();
Queue<TreeNode> queue = new LinkedList<>();
queue.add(root);
while(!queue.isEmpty()){
TreeNode node = queue.poll();
list.add(node.val);
if(node.left!=null){
queue.add(node.left);
}
if(node.right!=null){
queue.add(node.right);
}
}
//将集合转换为数组,返回
int[] array = new int[list.size()];
for(int i=0;i<array.length;i++){
array[i] = list.get(i);
}
return array;
}
}