Cette question peut définir deux pointeurs, un pointeur, un mouvement de pointeur à partir des nœuds N + 1 depuis le début de la deuxième scratch de contention de masse, en maintenant la distance N du second pointeur, lorsque le premier pointeur atteint le dernier quand un noeud, le deuxième pointeur est atteint avec précision avant - dernier noeud N, le numéro du noeud de suppression, puis reconnectez le deuxième pointeur vers le nœud suivant inférieur, sous réserve de la demande de compléter
la JAVA
public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode A = new ListNode(0);
A.next = head;
ListNode first = A;
ListNode second = A;
int i;
for (i = 1; i <= n + 1; i++)
{
first = first.next;
}
while (first != null)
{
first = first.next;
second = second.next;
}
second.next = second.next.next;
return A.next;
}