Maison  >  Article  >  Java  >  Comment supprimer le Nième nœud de la dernière liste chaînée en Java

Comment supprimer le Nième nœud de la dernière liste chaînée en Java

WBOY
WBOYavant
2023-04-28 15:52:141156parcourir
Idée de résolution de problèmes
  1. L'idée générale est de laisser le pointeur avant se déplacer d'abord de n pas, puis les pointeurs avant et arrière se déplacent ensemble jusqu'à ce que l'avant le pointeur atteint la fin.

  2. Configurez d'abord le pré-pointeur. Le pré-pointeur est une petite astuce, qui est expliquée à la question 2

  3. #🎜. 🎜## 🎜🎜#Supposons que le nœud suivant du pré-pointeur pointe vers la tête, que le pointeur précédent soit le premier et le pointeur arrière le deuxième, les deux étant égaux à pré
  4. #🎜🎜 #

    premier avancer en premier Après avoir parcouru n pas
  5. , le premier et le deuxième avancent ensemble À ce moment, la distance qui les sépare est de n. la queue, la position de la seconde se trouve être l'avant-dernière position du nœud précédent des n nœuds.
  6. javacode
  7. class Solution {
        
           public ListNode removeNthFromEnd(ListNode head, int n) {
    
            ListNode pre = new ListNode(0);
            pre.next = head;
    
            ListNode first = pre;
            ListNode second = pre;
    
            while (n>0){
                first= first.next;
                n--;
            }
    
            while (first.next != null){
                first=first.next;
                second=second.next;
            }
            second.next = second.next.next;
    
            return  pre.next;
        }
    }

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer