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

184
Vistas
¿Por qué no actualizamos el nodo principal de esta lista vinculada?

Estaba haciendo esta prueba de Leetcode https://leetcode.com/problems/add-two-numbers/ y la solución de JavaScript que encontré en línea es

 var addTwoNumbers = function(l1, l2) { let carry = 0; let previousNode = new ListNode(); let headNode = previousNode; while (l1 || l2 || carry) { let val1 = 0; let val2 = 0; if (l1) { val1 = l1.val; l1 = l1.next; } if (l2) { val2 = l2.val; l2 = l2.next; } let sum = val1 + val2 + carry; carry = sum > 9 ? 1 : 0; let digit = sum % 10; let currentNode = new ListNode(digit); previousNode.next = currentNode; previousNode = currentNode; } return headNode.next; }

No entiendo cómo se actualiza headNode y tiene la respuesta correcta. Quiero decir:

Paso 1: creamos la nueva variable anterior Nodo como {val:0 , next: null}
Paso 2: headNode es previousNode, lo que significa {val:0 , next: null}
Paso 3: creamos la nueva variable currentNode como {val:digit1 , next: null}
Paso 4: el nodo anterior. el siguiente se establece como el nodo actual, por lo tanto, el nodo anterior ahora es {val:0 , next: {val:digit1 , next: null}}
Paso 5: configuramos el nodo anterior como el nodo actual para que podamos continuar agregando las siguientes soluciones, y ahora el nodo anterior es {val:digit1 , next: null}

y aquí seguimos con los pasos del ciclo while

Paso 6: creamos la nueva variable currentNode como {val:digit2 , next: null}
Paso 7: anteriorNodo.siguiente se establece como el nodo actual, por lo tanto, el anteriorNodo ahora es {val:digit1 , next: {val:digit2 , next: null}}
Paso 8: configuramos el nodo anterior como el nodo actual, y ahora el nodo anterior es {val:digit2 , next: null}

.... y así ...

Ahora, pregunta: ¿cuándo actualizamos headNode? ¿Por qué este código funciona y headNode es algo así como {val: 0, next: (todo lo que necesitamos)} y, por lo tanto, llamando a headNode.next obtenemos la solución correcta?

¡Gracias por la explicación!

about 4 years ago · Juan Pablo Isaza
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