题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
解析思路
我们注意题目说的是二叉搜索树哈,我一开始以为就是二叉树,弄错好久。
运行代码
public class Solution {
public boolean VerifySquenceOfBST(int [] sequence) {
int length = sequence.length;
if(length == 0){
return false;
}
return Find(0,length-1,sequence);
}
public boolean Find(int start,int end,int [] array){
if(start>=end){
return true;
}
int length = array.length;
int i = start;
// for(;i<length;i++){ 不知道循环几次,所以不用for循环
// if(array[i]>array[end]){
// break;
// }
// }
while(array[i] < array[end]){
i++;
}
for(int j = i; j<end;j++){
if(array[j]<array[end]){
return false;
}
}
return Find(start,i-1,array)&&Find(i,end-1,array);
}
}