c'est-à-dire que les devoirs em> strong> On m'a demandé de supprimer l'élément KTH d'une liaison linked. J'ai également reçu sa taille un Je ne veux pas que la solution est juste des conseils, merci. P> int n code>. La question est de savoir comment mettre à jour la taille de ma liste après avoir supprimé le nœud en position "K"? S'il y a quelque chose qui ne va pas avec la logique de mon code, veuillez le mentionner. P>
int N;
Node first;
// delete the kth element (where k is between 0 and N-1 inclusive)
public void delete (int k) {
if (k < 0 || k >= N)
throw new IllegalArgumentException();
Node x = first;
if( k == 0){
first = x.next;
N = N - 1;
}
for(int i = 1; i < k; i++){
x = x.next;
N = N - 1;
}
x.next = x.next.next;
N = N - 2;
}
3 Réponses :
Lorsque vous supprimez un nœud, il vous suffit de modifier le nœud précédent code> S. / code> suivant code> au (nouveau) nœud suivant en k et décrément Edit p>
Faites également attention à votre boucle pour votre boucle, vous modifiez le prochain des nœuds avant le nœud n < / code> (
n - code>) pour mettre à jour la taille de la liste. p>
k p> p>
envisagez de faire deux cas: k == 0 et le reste. La taille est donnée par N de sorte que la nouvelle taille doit être N - 1.
Node x = first; // What a name if (k == 0) { first = x.next; // Could be first = first.next N = N - 1; // Are you done here? } for (int i = 1; i < k; i++) { x = x.next; // Really? N = N - 1; } x.next = x.next.next; // Really? N = N - 2; N = N - 1;
Essayez d'utiliser la méthode list.remove (objet obj) code> définie dans la liste liée. Pour obtenir l'objet à l'élément K-TH, vous pouvez utiliser
list.get.get (int index) code>. Une fois que vous avez trouvé le k-ème élément, envisagez de vous casser ou de revenir pour éviter tout problème de modification simultanée ou des erreurs liées à l'index. p>
L'OP rédige la mise en œuvre de leur possédez la liste liée à la liste liée i>, sans utiliser java.util.linkedlist code>. Lire toute la question avant de répondre toujours à l'aide.
La taille de la liste ne va-t-elle toujours pas être inférieure après avoir retiré un élément?
En outre, est-ce une liste individuellement liée ou doublement liée?
Liste locale
Pourquoi voudriez-vous supprimer manuellement l'article de la liste? Pour autant que je sache, LL a sa propre suppression (ou supprimer Je ne me souviens pas de) la méthode, qui se souciera des décalages et des délinkings nécessaires.
L'OP rédige la mise en œuvre de leur possédez la liste liée à la liste liée i>, sans utiliser
java.util.linkedlist code>.