从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
例如:
给定二叉树: [3,9,20,null,null,15,7],
3/ \9 20/ \15 7
返回:
[3,9,20,15,7]
提示:
节点总数 <= 1000
解题思路
使用队列实现层序遍历
代码
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
class Solution {public int[] levelOrder(TreeNode root) {List<Integer> res=new ArrayList<>();Queue<TreeNode> queue=new LinkedList<>();if(root==null) return new int[0];queue.add(root);while(!queue.isEmpty()){int size=queue.size();for(int i=0;i<size;i++){TreeNode cur=queue.poll();res.add(cur.val);if(cur.left!=null) queue.add(cur.left);if(cur.right!=null) queue.add(cur.right);}}int[] ret=new int[res.size()];for(int i=0;i<res.size();i++){ret[i]=res.get(i);}return ret;}
}