Я не знаю, что не так с вашим кодом, но я бы подошел к нему, показывая состояние списка при каждом прохождении цикла:
void printList(node* head)
{
int cntr = 1;
while (head != NULL)
{
printf("(Node: %d. Name: %s) --> ", cntr, head->name);
head = head->next;
}
}
Для этого убедитесь, что у каждого узла есть name
, установленное в «1», «2» и т. Д.
Затем распечатывайте состояние списка на каждом проходе, возможно, даже на каждом этапе!
И вы должны увидеть, что происходит не так.