Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

203
Vistas
Función de recuperación en la misma entrada que causa bucles

Escribió la siguiente función para fusionar dos listas enlazadas:

 var mergeTwoLists = function(l1, l2) { current = l1.head; if (current === null){ l1.head = l2.head; //Have to use l1.head instead of current since if we assign current again to l2.head the current will just start pointing to l2.head and lose reference to l1. } else{ while( current.next != null){ current = current.next; } current.next = l2.head; } return l1; };

Creando dos listas enlazadas:

 let l1 = new linkedlist(); let l2 = new linkedlist(); l1.insert(1); l1.insert(2); l1.insert(4); l2.insertEnd(1); l2.insertEnd(3); l2.insertEnd(4);

Ahora llamé a la función dos veces:

 let l3 = mergeTwoLists(l1,l2); console.log(l3.show()); let l4 = mergeTwoLists(l1,l2); console.log(l4.show())

El primer programa genera el esperado 4 2 1 1 3 4. Sin embargo, la segunda llamada realiza un bucle infinito y sigue generando 4 2 1 1 3 4 1 3 4 1 3 4 1 3 4 ........

¿Por qué está pasando esto?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

mergeTwoLists no hace copias de los nodos de la lista. Entonces, después de la primera fusión, el último nodo de l1 es el mismo que el último nodo de l2 . Cuando los vuelve a fusionar, la next propiedad del último nodo en l2 ahora apunta a l2.head , lo que da como resultado una lista circular, como si hubiera hecho mergeTwoLists(l2, l2) .

Si no desea que esto suceda, debe definir una función copyList() y usar

 current.next = copyList(l2).head;
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda