您的位置:首页 > 其它

二叉搜索树的后续遍历序列

2017-09-13 10:13 267 查看
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍
public class Solution {
public static boolean VerifySquenceOfBST(int [] sequence) {
if(sequence==null || sequence.length==0){
return false;
}
int i=0;
for(;i<sequence.length;i++){
if(sequence[i]>sequence[sequence.length-1]){
break;
}
}
int j=i;
for(;j<sequence.length;j++){
if(sequence[j]<sequence[sequence.length-1]){
return false;
}
}
boolean left=true,right=true;
if(i>0){
left=helper(sequence,0,i);
}
if(j<sequence.length){
right=helper(sequence,i,sequence.length-1-i);
}
if(left && right){
return true;
}else{
return false;
}
}
public static boolean helper(int[] sequence,int start, int end){
int i=start;
for(;i<end;i++){
if(sequence[i]>sequence[end-1]){
break;
}
}
int j=i;
for(;j<end;j++){
if(sequence[j]<sequence[end-1]){
return false;
}
}
boolean left=true,right=true;
if(i>start){
if(i==end){
i=end-1;
}
left=helper(sequence,start,i);
}
if(j<end){
if(j==start){
j=start+1;
}
right=helper(sequence,i,end);
}
if(left&& right){
return true;
}else{
return false;
}
}
}


历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: