您的位置:首页 > 职场人生

剑指offer 面试题24 判断二叉搜索树后续遍历序列

2014-12-24 15:53 507 查看
bool IsBSTSquence(const int *sequence,int len){
bool result=false;
if(sequence==NULL||len<=0)
return result;

const int *flag=sequence;
int rootdata=*(sequence+len-1);
while(*flag<rootdata)){
++flag;
}
for(int i=0;flag+i<sequence+len-1;++i){
if(*(flag+i)<rootdata)
return result;
}

bool left=true;
if(flag>sequence)
left=IsBSTSquence(sequence,flag-sequence);

bool right=true;
if(flag<sequence+len-1)
right=IsBSTSquence(flag,sequence+len-1-flag);

if(left&&right)
result=true;
return result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: