一.单链表的按位序删除
//按位序删除(带头结点)
bool ListDelete(LinkList &L, int i, int &e) {
if (i < 1) {
return false;
}
LNode * p;
int j = 0;
p = L;
while (p != NULL && j < i - 1)
{
p = p->next;
j++;
}
if (p == NULL)
return false;
if (p->next == NULL)
return false;
LNode *q = p->next;
e = q->data;
p->next = q->next;
free(q);
return true;
}
二.单链表的指定元素删除
//指定元素的删除
bool DeleteNode(LNode*p) {
if (p == NULL)
return false;
if (p->next == NULL)
return false;
LNode *q = p->next;
p->data = p->next->data;
p->next = q->next;
free(q);
return true;
}
总结思维导图: