解题
判断整数序列是不是二元查找树的后序遍历结果
思想,找到序列的根,然后将序列划分左右子树,再递归判断
boolean Is_postOrder_traverse(int a[],int begin,int end) {
if(a == null || begin >end)
return false;
root=a[end];
for(int i=begin;i<end;i++){
if(a[i]>root)
break;
}
for(int j=i;j<end;j++){
if(a[i]<root)
return false;
}
boolean left =true;
boolean right =true;
if(i > begin)
left = Is_postOrder_traverse(a,begin,i-1);
if(j>i)
right = Is_postOrder_traverse(a,i,end-1);
return right&&left;
}