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

249
Visualizações
Alcance funcional/variable en una implementación de lista enlazada de javascript

Referencia a la solución javascript de leetcode: agregue dos números https://leetcode.com/problems/add-two-numbers/

Por qué el alcance de la lista no cambia cuando se cambia el alcance principal, es decir, cuando head.next se asigna a una nueva referencia de nodo y head se vuelve a asignar a head.next, entonces por qué List.next no cambió y permaneció igual que toda la lista vinculada

Consulte la solución a continuación:

 Definition for singly-linked list. function ListNode(val) { this.val = val; this.next = null; } @param {ListNode} l1 @param {ListNode} l2 @return {ListNode} var addTwoNumbers = function(l1, l2) { var List = new ListNode(0); var head = List; var sum = 0; var carry = 0; while(l1!==null||l2!==null||sum>0){ if(l1!==null){ sum = sum + l1.val; l1 = l1.next; } if(l2!==null){ sum = sum + l2.val; l2 = l2.next; } if(sum>=10){ carry = 1; sum = sum - 10; } head.next = new ListNode(sum); head = head.next; sum = carry; carry = 0; } return List.next; };

Intenté lo siguiente, pero dio un resultado diferente a continuación, b.next se cambia cuando se cambia a.next, ¿por qué?

 function value (val){ this.x = val;this.next = null;} let a = new value(1); console.log(ax); console.log(a.next, "a next"); let b = a; console.log(bx); console.log(b.next,"b next") a.next = 23; console.log(a.next, "a next"); console.log(b.next,"b next") VM1592:3 1 VM1592:4 null 'a next' VM1592:6 1 VM1592:7 null 'b next' VM1592:9 23 'a next' VM1592:10 23 'b next'

La lista no se cambia en el ejemplo anterior, pero ¿la cabeza cambió? ¿Por qué b se cambia con a cambiado? Por qué

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

head y List son variables que contienen referencias al mismo ListNode . Un ListNode es un objeto mutable. Por lo tanto, cuando cambias las propiedades de head , digamos cambia su next propiedad , this is reflected also in List`, ya que ambos apuntan al mismo objeto.

Ahora, cuando cambie el valor de head , diga head = head.next , List aún se refiere al ListNode inicial. head y List no son referencias entre sí. Cambiar uno en sí mismo no cambia el otro. Son solo punteros a un objeto. Solo el cambio de las propiedades del objeto en sí se refleja en el otro, siempre que ambos apunten al mismo objeto (al principio, claro).

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