[Leetcode] 0019. Eliminar el enésimo nodo del final de la lista

Explore diversas soluciones LeetCode en Python, C++, JavaScript, SQL y TypeScript. Ideal para preparación de entrevistas, aprendizaje y práctica de código en múltiples lenguajes de programación. Enlace de repositorio de Github


Dado que cabeza de una lista enlazada, elimine el n.º nodo desde el final de la lista y devuelve su encabezado.

 

Ejemplo 1:

Aporte: cabeza = [1,2,3,4,5], n = 2
Producción: [1,2,3,5]

Ejemplo 2:

Aporte: cabeza = [1], n = 1
Producción: []

Ejemplo 3:

Aporte: cabeza = [1,2], n = 1
Producción: [1]

 

Restricciones:

  • El número de nodos en la lista es talla.
  • 1 <= tamaño <= 30
  • 0 <= Valor.nodo <= 100
  • 1 <= n <= tamaño

 

Hacer un seguimiento: ¿Podrías hacer esto de una sola vez?

Hacer un seguimiento: ¿Podrías hacer esto de una sola vez?

Pitón

				
					Complejidad de tiempo de #: O(n) Complejidad de espacio de #: O(1) al escribir import Clase opcional ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next class Solución: def removeNthFromEnd(self, head: Opcional[ListNode], n: int) -> Opcional[ListNode]: total = 0 countNode = resNode = head while countNode: total += 1 countNode = countNode.next delIdx = total - n - 1 si delIdx < 0: head = head.next devuelve head currentIdx = 0 mientras resNode: si currentIdx == delIdx: si resNode.next.next: resNode.next = resNode.next.next else: resNode.next = Ninguno devuelve head else : resNode = resNode.next currentIdx += 1 return head root = ListNode(1) root.next = ListNode(2) root.next.next = ListNode(3) root.next.next.next = ListNode(4) raíz. next.next.next.next = ListNode(5) print(Solución().removeNthFromEnd(raíz, 2))
				
			
es_ESEspañol