单调栈解法:
后序遍历:左 右 根
反转后:根 右 左
首先给一个极大值,令其为根节点,那么所给的二叉树为其左节点。
维护递增单调栈,递增过程就是 根→右 过程,否则一定是到右→左了,退栈过程得出他的根,这时再往后的节点一定是根的左节点,否则不是后序遍历。
现在又到了一个左节点,那么我们重复上述过程,实际上也就是一个递归过程。
03-08
193
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-23
747
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
单调栈解法:
后序遍历:左 右 根
反转后:根 右 左
首先给一个极大值,令其为根节点,那么所给的二叉树为其左节点。
维护递增单调栈,递增过程就是 根→右 过程,否则一定是到右→左了,退栈过程得出他的根,这时再往后的节点一定是根的左节点,否则不是后序遍历。
现在又到了一个左节点,那么我们重复上述过程,实际上也就是一个递归过程。