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;
}