带头结点链表L,P指向其中一个结点删除p结点后继 还有不带头结点删除P结点后继求代码

2025-04-04 07:36:30
推荐回答(1个)
回答1:

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的后继指针。