这里需要注意的就是,Java是按照位置定位的。
package test;
public class VerifySquenceOfBST {
public boolean verifySquenceOfBST(int[] sequence,int start,int end){
if(sequence == null || start>end)
return false;
int root = sequence[end];
int i=start;
for(; i <end; ++i){
if(sequence[i]>root)
break;
}
int j=i;
for(; j<end; ++j){
if(sequence[j]<root)
return false;
}
boolean left = true;
if(i>start)
left = verifySquenceOfBST(sequence, start, i-1);
boolean right = true;
if(i<end-1)
right = verifySquenceOfBST(sequence, i,end-1);
return (left && right);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] data = {5,7,6,9,11,10,8};
int[] data1 = {7,4,6,5};
VerifySquenceOfBST verifySquenceOfBST = new VerifySquenceOfBST();
boolean b1=verifySquenceOfBST.verifySquenceOfBST(data, 0, data.length-1);
boolean b2=verifySquenceOfBST.verifySquenceOfBST(data1, 0, data1.length-1);
System.out.println(b1);
System.out.println(b2);
}
}