1、需要队列,队列先进先出,符合一层一层遍历的逻辑,而栈先进后出就符合递归(深度优先遍历)的逻辑。
2、层级遍历就是图中的广度优先遍历。
3、层次遍历的模板:
4、给定一个二叉树,返回其节点值自底向上的层次遍历。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)(107)
解法:相对于层次遍历,就是最后把result数组翻转一下就可以。
5、给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。即右视图。(199)
解法:层序遍历的时候,判断是否遍历到单层的最后面的元素,如果是,就放进result数组中,随后返回result就可以了。
6、给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。(637)
解法:层序遍历的时候把一层求个总和再取平均值。
7、给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。即N叉树的层序遍历。(429)
解法:依旧是模板题,只不过一个节点有多个孩子。