题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。
如果是返回true,否则返回false。
例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:
8
/ /
6 10
/ / / /
5 7 9 11
因此返回true。
如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false。
我的思路:每次子递归中将数组区间分成两个子区间,对右区间判断元素是否都大于根值。
若全部大于根植,则进行递归;否则函数返回。
思路很简单,缺点是有重复扫描的过程。
源码(未经严格验证):