public class Solution {
public boolean VerifySquenceOfBST(int [] sequence) {
if(sequence.length==0) return false;
if(sequence.length==1) return true;
return SequenceOfBST(sequence,0,sequence.length-1);
}
public boolean SequenceOfBST(int[] sequence,int l,int r){
if(l>=r) return true;
//大于对应空树 等于对应遍历完左或右子树都符合条件
int i=l;
while(sequence[i]<sequence[r]){//让i指向第一个大于根的数,也就找到了右子树
i++;
}
for(int j=i;j<r;j++){//检查右子树中有没有小于根的数
if(sequence[j]<sequence[r]) return false;
}
return SequenceOfBST(sequence,l,i-1)&& SequenceOfBST(sequence,i,r-1);
}
}