题目:判断某序列是否为某二叉搜索树的后序遍历
思路:这里我们要利用二叉搜索树的性质,如序列是后序遍历序列,则:
1、序列的最后一个元素为根
2、序列的前半部分小于根,后半部分大于根,若不满足这种情况,则返回false
3、递归调用前半部分和后半部分,类似于二分法。
需要注意的是边界条件。
不足之处欢迎之处。
class Solution {
public:bool VerifySquenceOfBST(vector<int> sequence) {
if(sequence.empty()) return false;
int len=sequence.size();
if(len==1) return true;
int root=sequence[len-1];
vector<int> temp1,temp2;
int i;
for(i=0;i<len-1;i++){
if(sequence[i]<root){
temp1.push_back(sequence[i]);
}
else{
break;
}
}
for(;i<len-1;i++){
if(sequ