Ich habe Probleme zu verstehen, wie diese Methode unten die Duplikate in der verknüpften Liste entfernt. Nach dem Aufruf dieser Methode werden alle Duplikate erfolgreich entfernt. Warum ist der Kopf nicht null? Wäre der Kopfknoten nicht null, weil die aktuelle Variable in der Methode bis zum Ende durchlaufen würde. Wie aktualisiert diese Methode die Liste erfolgreich, um die doppelten Elemente zu entfernen?Verknüpfte Liste Entfernen von Duplikat aus der Liste, Referenz Verwirrung
static void removeDuplicate(node head)
{
// Hash to store seen values
HashSet<Integer> hs = new HashSet<>();
node current = head;
node prev = null;
while (current != null)
{
int curval = current.val;
// If current value is seen before
if (hs.contains(curval)) {
prev.next = current.next;
} else {
hs.add(curval);
prev = current;
}
current = current.next;
}
}
Wenn ein Benutzer Ihre Frage beantwortet, akzeptieren Sie auch seine Antwort ([Antworten annehmen: Wie funktioniert es?] (Https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer- Arbeit)). Wenn nicht, geben Sie bitte an, was unbeantwortet bleibt, dies ist ein sehr wichtiger Teil von StackOverflow, vielen Dank. – Zabuza