这就是一个最简单的二叉树层次遍历,利用队列和循环。
思路是:先将根节点入队,然后每次从队头取结点进行访问,每次访问就做4件事
1:出队(以便后续访问队头时,访问接下来的点,做到不重复)
2:输出该节点的数据(实际上就是访问的具体事物逻辑)
3:将该节点的左孩子入队
4:将该节点的右孩子入队
这样,当队列为空时,整个二叉树就遍历完了,而且是按照层次顺序的,层数越小越先被访问。
另外同一个结点的左孩子也比右孩子先访问到。
要理解队列的作用,先进先出的缓存机制。当我访问到当前层,将他的两个孩子加入队列排队,这样就能保证层次有序了。