输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
import java.util.ArrayList;
public class Solution {
public boolean VerifySquenceOfBST(int [] sequence) {
int len=sequence.length;
int i=0;
int j=0;
int k=0;
boolean result=false;
if(len!=0)
{
int a=sequence[len-1];
while(sequence[i]<a)
{
k++;
i++;
}
while(i<len-1)
{
if(sequence[i]>a)
{
j++;
i++;
}
else
{
return false;
}
}
int []aa=new int[k];
int []bb=new int[j];
for(int ii=0;ii<k;ii++)
{
aa[ii]=sequence[ii];
}
for(int iii=0;iii<j;iii++)
{
bb[iii]=sequence[k+iii];
}
if(aa.length==0||bb.length==0)
{
return true;
}
result =VerifySquenceOfBST(aa);
result =VerifySquenceOfBST(bb);
}
return result;
}
}