Je n'arrive pas à comprendre comment cette méthode ci-dessous supprime les doublons dans la liste chaînée. Après avoir appelé cette méthode, tous les doublons ont été supprimés avec succès. Pourquoi la tête n'est pas nulle? N'est-ce pas que le noeud principal est nul, car la variable courante dans la méthode est répétée jusqu'à la fin. Comment cette méthode met-elle à jour la liste pour se débarrasser des éléments en double?Liste liée supprimant les doublons de la liste, confusion de référence
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;
}
}
Si un utilisateur a répondu à votre question, veuillez également accepter sa réponse ([Accepter les réponses: Comment ça fonctionne?] (Https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer- travail)). Si ce n'est pas le cas, veuillez préciser ce qui reste sans réponse, c'est une partie très importante de StackOverflow, merci beaucoup. – Zabuza