从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
例如:
给定二叉树:[3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回:
[3,9,20,15,7]
提示:
节点总数 <= 1000
代码:
/**
*Definitionforabinarytreenode.
*publicclassTreeNode{
*intval;
*TreeNodeleft;
*TreeNoderight;
*TreeNode(intx){val=x;}
*}
*/
classSolution{
publicint[]levelOrder(TreeNoderoot){
List<Integer>list=newArrayList<Integer>();
Queue<TreeNode>queue=newLinkedList<>();
if(root==null)returnnewint[]{};
queue.offer(root);
while(!queue.isEmpty())
{
TreeNodep=queue.poll();
list.add(p.val);
if(p.left!=null)
{
queue.offer(p.left);
}
if(p.right!=null)
{
queue.offer(p.right);
}
}
int[]res=newint[list.size()];
for(inti=0;i<res.length;i++){
res[i]=list.get(i);
}
returnres;
}
}