Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

186
Visualizações
¿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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda