Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

185
Views
¿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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!