题目描述
剑指 Offer 32 - I. 从上到下打印二叉树
难度中等72
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
例如:
给定二叉树: [3,9,20,null,null,15,7]
,
3
/ \
9 20
/ \
15 7
返回:
[3,9,20,15,7]
二叉树节点如下:
public class BinaryTreeNode {
int value;
BinaryTreeNode left;
BinaryTreeNode right;
}
测试用例
- 功能测试(完全二叉树;所有节点只有左子树的二叉树;所有节点只有右子树的二叉树)
- 特殊功能测试(二叉树根节点为空指针;只有一个节点的二叉树)
题目考点
- 考察应聘者的思维能力,想到用队列处理按层遍历。
- 考察应聘者对二叉树及队列的理解。
解题思路
这道题如果能想到队列,编码还是很简单的。不逼逼了!!!
- 先将头节点放入队列
- 当队列不为空的时候,从队列取出一个节点输出
- 判断取出的节点左右节点是否为空,不为空则将他们加入队列
- 循环至队列为空跳出
参考解题
class Solution {
public int[] levelOrder(TreeNode root) {
if(root==null) return new int[0];
Queue<TreeNode> queue = new LinkedList<>(){