[Leetcode] 0023. Fusionar k listas ordenadas

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

Tabla de contenido

Duro


Se le proporciona una variedad de k listas enlazadas liza, cada lista enlazada se ordena en orden ascendente.

Fusione todas las listas vinculadas en una lista vinculada ordenada y devuélvala.

 

Ejemplo 1:

Aporte: listas = [[1,4,5],[1,3,4],[2,6]]
Producción: [1,1,2,3,4,4,5,6]
Explicación: Las listas enlazadas son: [ 1->4->5, 1->3->4, 2->6 ] fusionándolas en una lista ordenada: 1->1->2->3->4->4->5->6

Ejemplo 2:

Aporte: listas = []
Producción: []

Ejemplo 3:

Aporte: listas = [[]]
Producción: []

 

Restricciones:

  • k == listas.longitud
  • 0 <= k <= 10 4
  • 0 <= listas[i].length <= 500
  • -10 4 <= listas[i][j] <= 10 4
  • listas[i] está ordenado en orden ascendente.
  • La suma de listas[i].longitud no excederá 10 4.

Pitón

				
					# Definición de lista enlazada simple. from writing import List, clase opcional ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next class Solución: def mergeKLists(self, listas: List[Optional[ListNode]]) -> Opcional[ListNode]: nodos = [] cabeza = punto = ListNode(0) para izquierda en listas: mientras izquierda: nodos.append(izquierda.val) izquierda = izquierda.next para x en ordenado(nodos): punto.next = ListNode(x) punto = punto.next devolver cabeza.next
				
			
es_ESEspañol