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
Medio
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?
Tabla de contenido
PalancaPitó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))