Il y a un problème avec mon code. Après la suppression du noeud, le même noeud apparaît en tant que noeud précédent dans le noeud suivant. Essayer de supprimer le noeud 4.Suppression d'une valeur de la liste circulaire chaînée
Pervieux: noeud: 5; Noeud: 15; NextNode: 16 | Pervious: Noeud: 15; Noeud: 16; NextNode: 29 | Pervious: Noeud: 16; Noeud: 29; NextNode: 4 | Pervious: Nœud: 29; Noeud: 4; NextNode: 5 | Pervious: Noeud: 4; Noeud: 5; NextNode: 15 |
Après avoir retiré
drainants: Noeud: 5; Noeud: 15; NextNode: 16 | Pervious: Noeud: 15; Noeud: 16; NextNode: 29 | Pervious: Noeud: 16; Noeud: 29; NextNode: 5 | Pervious: Noeud: 4; Noeud: 5; NextNode: 15
public Node deleteValue(int i) {
Node node = start;
do {
if (node.next.getData() == i) {
Node n = node.next;
node.next = n.next;
size--;
if (n == start) {
start = node;
}
return n;
}][1]
node = node.next;
} while(node != start);
return null;
}
Votre classe Node ont un champ/variable qui pointe vers le nœud précédent? Ou a-t-il seulement le prochain champ pointant vers l'élément suivant? –
Oui, j'ai Node prev; – gate
Eh bien, alors vous avez probablement modifié cela dans votre méthode remove. Vous ne modifiez actuellement que l'attribut suivant. Il n'est donc pas surprenant que l'attribut prev reste le même et pointe toujours vers l'élément supprimé. –