Предполагается удалить все узлы, содержащие данные «last», которые совпадают с строкой «name». Это не дает мне ошибку, но она не работает должным образом. Она удаляет больше, чем нужно удалить.C - Связанный список - Удалить узел
struct node* mydelete(struct node *head)
{
char name[21];
struct node *temp;
printf("---Please enter last name:");
scanf("%s",&name);
while(head->next!=NULL)
{
if(strcmp(head->last,name)==0)
{
temp = head;
head = head->next;
free(temp);
n--;
}
else if(strcmp(head->next->last,name)==0)
{
temp = head->next;
head->next = head->next->next;
free(temp);
n--;
}
else
head = head->next;
}
return head;
}
ли вы опубликовать тестовый случай, и результат выполнения? – poiu2000
Я пытаюсь удалить все узлы, содержащие «имя» – user3053814