Estoy aprendiendo cómo agregar un nodo a la lista vinculada. El siguiente es el código correcto:
class NodeList { constructor(head = null){ this.head = head this.addLast = function (data) { let node = new Node(data) console.log(curr) if (this.head === null) { return this.head = node } else{ let curr = this.head while(curr.next){ curr = curr.next } curr.next = node } } } }
Inicialmente,
Escribí el código como tal:
class NodeList { constructor(head = null){ this.head = head this.addLast = function (data) { let node = new Node(data) console.log(curr) if (this.head === null) { return this.head = node } else{ let curr = this.head while(curr.next){ curr = curr.next } curr.next = node } } } }
La principal diferencia está en la instrucción if. En vez de
if(this.head === null) { return this.head = node}
escribí
let curr = this.head if(curr === null) { return curr = node}
Sin embargo, el código no funciona.
Si hago algo como
let nodeList = new Nodelist nodeList.addLast(2)
Espero obtener la cabeza: Nodo {datos: 2, siguiente: nulo}. El primer código logró esa compra pero el segundo código no. Estoy confundido por qué esto es así. Ambos códigos tienen el mismo aspecto. ¿Alguien me puede iluminar?