問題:我有一個包含多個數字的.txt文件,我需要按順序放置這些數字以及刪除任何重複項。我已經完成了將它們整理的功能(它有效)。我目前正在進行刪除過程。C++,如何橫切鏈接列表,同時刪除重複項
我不知道如何使它能夠貫穿整個列表。因爲如果前兩個數字是0,它只會刪除第一個數字,然後該函數結束。
無論如何,這是我到目前爲止我刪除功能:
void deleteDuplicate(Node*& head) // head is the list with the ordered numbers
{
Node* tmpPtr;
Node* delPtr;
if (head == nullptr){
return;
}else if (head->data == head->next->data){
delPtr = head;
head = head->next;
delete delPtr;
}else{
tmpPtr = head;
delPtr = head->next;
while (delPtr != nullptr && delPtr->data != delPtr->next->data){
delPtr = delPtr->next;
tmpPtr = tmpPtr->next;
}
if (delPtr != nullptr){
tmpPtr->next = delPtr->next;
head = head->next;
delete delPtr;
}
}
}
使用正確的工具來解決這些問題是你的調試器。在*堆棧溢出問題之前,您應該逐行執行您的代碼。如需更多幫助,請閱讀[如何調試小程序(由Eric Lippert撰寫)](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。至少,您應該\編輯您的問題,以包含一個[最小,完整和可驗證](http://stackoverflow.com/help/mcve)示例,該示例再現了您的問題,以及您在調試器。 –
您是否允許不插入重複項? – user4581301
從另一個角度來看,您可能不希望以這種方式實現該功能。賠率是好的,你有一個刪除功能,你已經測試和知道的作品。如果你不考慮製作和測試一個。只需迭代一次,然後爲每個要刪除的節點調用預先存在的刪除功能。 – user4581301