输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
class Solution {
public:
bool judge(vector<int> v,int zero,int root){
if(zero>=root) return true;
int right=root-1;
while(right>zero && v[right]>v[root]) right--;
for(int left=right-1;left>=zero;left--)
if(v[left]>v[root]) return false;
return judge(v,zero,right-1)&&judge(v,right,root-1);
}
bool VerifySquenceOfBST(vector<int> sequence) {
if(!sequence.size()) return false;
return judge(sequence,0,sequence.size()-1);
}
};