题目内容
给定一个二叉树,返回它的 后序 遍历。
用迭代算法完成
示例
输入: [1,null,2,3]
输出: [3,2,1]
题解
本题有多种思路可以求解。
首先,看一个比较取巧的方法。
我们知道,前序遍历的顺序是根、左、右,因此我们可以在前序遍历的基础上,将遍历顺序改为根、右、左,这下这个顺序就是后序遍历的镜像顺序,得到这个顺序后我们反转输出即为后序遍历的顺序。
第二,我们可以采用递归的思想。
具体思路是对左和右子树遍历,然后依次将答案放入,最后放入根的值。
第三,非递归的思想,需要用栈的数据结构,具体为之前提到过的Mirros遍历算法。
代码
c++
/** |