Estoy tratando de resolver los problemas de leecode, entendí el primer problema (dos sumas) y me quedé atascado en el segundo ejercicio de la plataforma, no entendí qué es .val, .next, new (ListNode), yo creo que es una lista enlazada que necesito estudiar pero no entendí todo y parece que no es así, alguien me puede ayudar? ¿Podría ser que lo que falta es solo la orientación a objetos que todavía tengo la intención de aprender? lo que se son algoritmos basicos que estudie para programacion logica y javascript y node base, gracias por su atencion
este código es la solución al problema, que tiene elementos que no pude entender
var addTwoNumbers = function(l1, l2) { let sum = 0; let current = new ListNode(0); let result = current; while(l1 || l2) { if(l1) { sum += l1.val; l1 = l1.next; } if(l2) { sum += l2.val; l2 = l2.next; } current.next = new ListNode(sum % 10); current = current.next; sum = sum > 9 ? 1 : 0; } if(sum) { current.next = new ListNode(sum); } return result.next; };Hay una clase llamada ListNode que son nodos de una lista enlazada. Cuando inicializa un nodo, está en la línea de
let newNode = new ListNode(val, next=null) //ex let head = new ListNode(null) let nodeOne = new ListNode(10) let nodeTwo = new Listnode(11) head.next = NodeOne nodeOne.next = NodeTwoLa lista vinculada se parece a: [noData, puntero al nodo1] --> [10, puntero al nodo2] --> [11, puntero nulo]
val es el valor del nodo (los datos que desea almacenar en el nodo) y next es un puntero al siguiente nodo para que sepa lo que viene después. El valor predeterminado del siguiente parámetro siempre es nulo. Puede establecer el valor de node.next al nodo que viene después para que pueda crear una cadena. Cuando verifique las propiedades de la clase, tiene el formato this.val o this.next, por lo que para ver directamente el valor que usa, haga newNode.val o newNode.next para ver estos valores.
Los punteros nulos significan el final de una lista enlazada.
Probablemente deberías ver un video de lista enlazada para principiantes.