时间限制:1秒 空间限制:32768K 热度指数:320667
题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
后序遍历的特征:左右根
BST特征:左<根<右
public boolean VerifySquenceOfBST(int [] sequence) {
if(sequence==null || sequence.length==0) return false;
return isBST(sequence, 0, sequence.length-1);
}
public boolean isBST(int [] sequence, int start, int end){
if(start>=end) return true;
int i= 0;
for(; i<end; i++){
if(sequence[i]> sequence[end]) break;
}
for(; i<end; i++){
if(sequence[i]< sequence[end]) return false;
}
return isBST(sequence,0,i-1) && isBST(sequence, i+1,end-1);
}