二叉树比较原版的层次遍历我们已经在正文例题中进行了介绍。这里给出下面一些例题的解答。其实都是基于 原来的二叉树的层次遍历的简单的改写。
这个题只需要在二叉树的层次遍历
的基础上,将每一层的平均值求出来就可以了。
在层次遍历的基础上,这里只是将left, right
两个左右子结点改成了children
。
这里只需要处理最后一层,然后将其和返回就可以了。
这里采用了分层遍历的思想来拿到最大宽度。
需要在入栈的时候,对结点进行编号。在编号的时候,如果父结点编号为x
- 左子结点为 2 * x
- 右子结点为 2 * x + 1
然后这个编号需要和结点一起入队。
在层次遍历的时候,只需要利用一个boolean
变量来指示是否要将当前遍历的结果进行reverse
操作。
只需要遍历完成之后,将最后的结果reverse
一下就可以了。
和二叉树的最大深度一样来处理。