题目描述(中等难度)

二叉树的层次遍历,输出一个 list 的 list。

解法一 DFS

这道题考的就是 BFS,我们可以通过 DFS 实现。只需要在递归过程中将当前 level 传入即可。

解法二 BFS 队列

如果是顺序刷题,前边的 , 98 题,,都用到了 BFS ,应该很熟悉了。

之前我们用一个 while 循环,不停的从队列中拿一个节点,并且在循环中将当前取出来的节点的左孩子和右孩子也加入到队列中。

定义一个新的 class,class 里边两个成员 node 和 level,将我们新定义的 class 每次加入到队列中。或者用一个新的队列和之前的节点队列同步入队出队,新的队列存储 level。

下边的代码实现后一种。

方案二

参考这里

我们在 while 循环中加一个 for 循环,循环次数是循环前的队列中的元素个数即可,使得每次的 while 循环出队的元素都是同一层的元素。

考察的知识点就是二叉树的 BFS,解法二的方案二是自己不曾想到的, while 循环中加入一个 for 循环,很妙!

添加好友一起进步~

如果觉得有帮助的话,可以点击 给一个 star 哦 ^^