题目: 在带头结点的单链表L中,删除所有值为x的结点,并释放其空间,假设值为x的结点不唯一。(出自2020-2)
算法思想:遍历整个链表,找到值为x的结点进行删除。
核心代码
void *DeleteX(LinkList L, int x) {
LNode *p = L;
while (p->next) {
if (p->next->data == x) {
LNode *q = p->next;
p->next = q->next;
free(q);
} else {
p = p->next;
}
}
}