69,373
社区成员
发帖
与我相关
我的任务
分享
link delete(link t, unsigned char key)
{
link p;
if (!t)
return NULL;
if (t->item > key)
t->l = delete(t->l, key);
else if (t->item < key)
t->r = delete(t->r, key);
else {
if (t->l == NULL && t->r == NULL) {
free_node(t);
t = NULL;
} else if (t->l) {
for (p = t->l; p->r; p = p->r);
t->item = p->item;
t->l = delete(t->l, t->item);
} else {
for (p = t->r; p->l; p = p->l);
t->item = p->item;
t->r = delete(t->r, t->item);
}
}
return t;
}