求助,二叉搜索树查找前驱的代码,C++的,我看网上有好多都是那种看不懂的
ll getpre(ll val){
ll p=root,ans=1;
while(p!=0){
if(tree[p].val==val){
if(tree[p].l!=0){
p=tree[p].l;
while(tree[p].r!=0) p=tree[p].r;
return p;
}break;
}if(tree[p].val<val&&tree[p].val>tree[ans].val) ans=p;
if(tree[p].val<val) p=tree[p].r;
else p=tree[p].l;
}return tree[ans].val;
}
这是我写的,一直不对,求调