题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
实现语言:Java
public class Solution {
public boolean VerifySquenceOfBST(int [] arr) {
int size=arr.length;
if(size==0){
return false;
}
if(size==1){
return true;
}
return helper(arr,0,size-1);
}
private boolean helper(int[] arr,int start,int end){
if(start>=end){
return true;
}
int i=end;
while(i>start&&arr[i-1]>arr[end]){
--i;
}
for(int j=start;j<i;++j){
if(arr[j]>arr[end]){
return false;
}
}
return helper(arr,start,i-1)&&helper(arr,i,end-1);
}
}