剑指offer 面试题32 - II. 从上到下打印二叉树 II(易) & LeetCode 102. 二叉树的层序遍历(中)
在剑指offer 面试题32 - I. 从上到下打印二叉树(中)的基础上略作修改即可。
Question
从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
例如:给定二叉树: [3,9,20,null,null,15,7], 返回其层次遍历结果: 1
2
3
4
5 3
/ \
9 20
/ \
15 7 提示:节点总数 <= 10001
2
3
4
5[
[3],
[9,20],
[15,7]
]
Intuition
用一个队列来保存将要打印的节点。为了把二叉树的每一行单独打印到一行里,我们需要两个变量:一个变量表示在当前层中还没有打印的节点数;另一个变量表示下一层节点的数目。
测试用例
功能测试(完全二叉树;所有节点只有左子树的二叉树;所有节点只有右子树的二叉树)。 特殊输入测试(二叉树根节点为nullptr指针;只有一个节点的二叉树)。
本题考点
考查应聘者的思维能力。按层从上到下遍历二叉树,这对很多应聘者来说是一个新概念,要在短时间内想明白遍历的过程不是一件容易的事情。应聘者通过具体的例子找出其中的规律并想到基于队列的算法,是解决这个问题的关键。
考查应聘者对二叉树及队列的理解。
Code
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!