最近开始了刷leetcode,积累积累算法经验
- 二叉树的前序遍历
借助栈,入栈时刻意先入right,再入left即可 - 二叉树的中序遍历
借助栈,持续左子树入栈,当到底时,弹出,将root换成right继续步骤,直到root为nullptr并且栈空了 - 二叉树的后序遍历
借助栈,左子树优先持续入栈,当到底时,判断是否有右子树,并且不是上一次入栈的右子树地址时,切到右子树,并且更新prev_right为当前的右子树地址,再次流程。
否则弹出,将root置为nullptr,期待下一次从栈中pop - 二叉树的层序遍历
借助队列实现,第一次push root,循环直到队列为空,每一次pop的次数由当前的队列的大小决定
The End ;