Menu
CoddyTech

Remove Nth Node From End of List

On vous donne une liste chaînée simple stockée dans deux tableaux de même longueur. Le nœud i contient la valeur values[i] et pointe vers le nœud next[i], -1 marque la fin de la liste, et la tête est le nœud 0. Les nœuds ne sont pas stockés dans l’ordre de la liste ; suivez donc les liens.

Supprimez le n-ième nœud en comptant depuis la fin de la liste, où le dernier nœud est le 1er en partant de la fin. Renvoyez les valeurs des nœuds restants, dans l’ordre de la liste.

Fonction

removeNthFromEnd(values: integer-array, next: integer-array, n: integer) → integer-array
valuesinteger-array
la valeur détenue par chaque nœud
nextinteger-array
l’indice du nœud vers lequel chaque nœud pointe, ou -1 pour le dernier nœud
ninteger
quel nœud supprimer, en comptant à partir de la fin, où 1 désigne le dernier nœud
Renvoieinteger-array
les valeurs restantes dans l’ordre de la liste, vide lorsque le seul nœud est supprimé

Contraintes

  • 1 ≤ L ≤ 5000, où L est la longueur de values et de next.
  • -100 ≤ values[i] ≤ 100
  • 1 ≤ n ≤ L
  • Chaque next[i] vaut -1 ou un indice de nœud compris entre 0 et L-1.
  • En partant du nœud 0, la liste visite chaque nœud exactement une fois, puis atteint -1. Il n’y a pas de cycle.

Exemples

Entrée
values = [5, 9, 2, 7, 6]next = [2, 3, 4, -1, 1]n = 2
Sortie
[5, 2, 6, 7]
Explication
En suivant les liens à partir du nœud 0, on visite les nœuds 0, 2, 4, 1, 3, donc la liste se lit 5, 2, 6, 9, 7. L’avant-dernier depuis la fin est le nœud 1, de valeur 9, et sans lui, la liste se lit 5, 2, 6, 7. L’entrée du tableau values[5-2] = 7 correspond au dernier nœud, et non à celui à supprimer.

lock icon+14 tests cachés à la soumission

challenge icon

Pour aller plus loin

Peux-tu trouver et délier le nœud en un seul parcours, sans en compter d’abord la longueur ?

Réinitialiser le code
def removeNthFromEnd(values, next, n):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

values = [5, 9, 2, 7, 6]
next = [2, 3, 4, -1, 1]
n = 2

Attendu

[5, 2, 6, 7]