/* Supprime dans la liste chaînée le nœud qui suit le nœud indiqué. La liste commence par un pointeur de tête; Si le pointeur sur le nœud suivant pointe sur le pointeur de tête, un traitement spécial doit être fait. */ #include "llist.h" struct LinkNode *DeleteNodeAfter(struct LinkNode **HeadOfListPtr, struct LinkNode *NodeToDeleteAfter) { /* Traitement spécial si le nœud à supprimer est la tête de la liste (supprime le premier élément de la liste) */ if (NodeToDeleteAfter == (struct LinkNode *)HeadOfListPtr) { *HeadOfListPtr = (*HeadOfListPtr)->NextNode; } else { NodeToDeleteAfter->NextNode = NodeToDeleteAfter->NextNode->NextNode; } return(NodeToDeleteAfter); }