題目描述
輸入一個整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷的結果。如果是則輸出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);
}
}