1.遍历二叉树
说到二叉树,最开始就要提到二叉树的遍历了。遍历分为递归版和非递归版,这里先说一下递归版。
但其实递归版也没什么好说的,就是把我们打印节点或者收集节点的时间放在了不同地方就能实现了。
这里说到非递归版,这里我想说的是,当用到先序遍历或者中序遍历后序遍历,都是用到栈辅助,这样子我们就能到一个节点两次,实现遍历。当我们想要按层遍历的时候,是用到队列来辅助的。遍历的时候,先压左,再压右,当队列不为空的时候,继续弹出头部,弹出的时候如果有左孩子就压入左孩子,如果有右孩子,就压入右孩子。
记住一个规律,普通遍历用栈,按层遍历用队列。
原文:https://www.cnblogs.com/carryup/p/13747676.html