Status RemoveNode(L){
Node=p->Next; // 把p的后继赋值给Node
p->Next=Node->Next; // 令p的后继变成原后继Node的后继。
free(Node); // 从链表里释放掉该结点所占内存。
RETURN OK;
}
至于带不带头结点,原理都是一样的,即要删除链表里的某一个结点时,需提前将其的后继与前驱保持连接畅通。避免出现断链的情况。
举一个例子:
假如有以下链表结点
A->B->C->D
假设现在要从链表里将C移除掉,则在移除前,需将C的前驱B的后继指针改为C的后继指针。