题目描述
给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。
思路分析
没有思路,就是普通的层次遍历,用Queue做辅助队列。
代码实现
public List<List<Integer>> levelOrder(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<>();
List<List<Integer>> lists = new ArrayList<>();
if (root == null) {
return lists;
}
queue.add(root);
while (!queue.isEmpty()) {
List<Integer> list = new ArrayList<>();
int size = queue.size();
while (size-- > 0) {
TreeNode tmp = queue.poll();
if (tmp == null) {
continue;
}
list.add(tmp.val);
queue.add(tmp.left);
queue.add(tmp.right);
}
if(list.size()==0){
continue;
}
lists.add(list);
}
return lists;
}