一种简单的迭代法后序遍历
Contents
主要是借助两个辅助栈,一个节点栈和一个 data 栈,data 栈中存放的是每个节点 data 的逆序。
考虑后序遍历固定是根节点最后访问,如果我们逆序一下,则根节点可以最先访问,首先确定下来。
即先得到一个逆序版的后序遍历,再通过一个栈的倒腾还原。
|
|
需要注意的是,在往节点栈中 push 孩子节点的时候,先被 push 的是左孩子,因为我们需要的是一个逆序版的后序遍历。
这种方法空间复杂度和时间复杂度都会多出一个O(n),但对比查找最高左侧可见叶节点的方法,实现起来要简单很多。
Author jonahgao
LastMod 2013-11-07