1
尝试了解如何正确设置将根据用户指定的参数从链接列表中删除的功能。所以我有一个名为list
的global
变量,它包含所有dog structs
。如果链表中有多个结构,我可以通过列表删除用户想要删除的节点,但由于某种原因,如果只有一个节点或者我想要删除的节点是该列表的头部,则该函数不会删除它。任何方向这个问题将不胜感激。根据用户输入从链接列表中删除节点
void remove_one(char* name)
{
struct dog *tempList = list;
struct dog *previous = NULL;
if (tempList == NULL) {
return;
}
while (tempList != NULL) {
if (strcmpi(tempList->name, name) == 0) {
if (previous == NULL) {
tempList = tempList->next;
}
else {
previous->next = tempList->next;
free(tempList);
tempList = previous->next;
}
return;
}
else {
previous = tempList;
tempList = tempList->next;
}
}
return;
}