2. Add Two Numbers

Resuelto en: 14 jul 2025 🇺🇸

//Peligro, esta solución está FEA:
  var addTwoNumbers = function (l1, l2) {
    function getSum(linkedList) {
        let arr = [];
        let node = linkedList;
        while (node !== null) {
            if (node === null) {
                return arr;
            }
            arr.unshift(node.val);
            node = node.next;
        }
        return BigInt(arr.join(""))
    }
    const result = (getSum(l1) + getSum(l2)).toString().split("");
    let i = 0;
    const length = result.length;
    let last = null;
    while (i < length) {
        let linkedList = {
            val: Number(result[i]),
            next: last
        }
        last = linkedList
        i++;
    }
    return last
};
//Advertencia, esta solución está FEA:
var addTwoNumbers = function (l1, l2) {
    function getSum(linkedList) { // Convierto la lista enlazada en un número
            let arr = [];
            let node = linkedList;
            while (node !== null) { // Recorro la lista enlazada
                    if (node === null) { // Vuelvo a checar si es null?? no sé por que en retrospectiva
                            return arr;
                    }
                    arr.unshift(node.val); // Agrego el valor al inicio del array
                    node = node.next; // Avanza al siguiente nodo
            }
            return BigInt(arr.join("")) // Si un caso me arroja numeros muy grandes, con bigint me aseguro de que no los va a convertir a otro formato
    }
    const result = (getSum(l1) + getSum(l2)).toString().split(""); // Sumo los números y los separo en dígitos
    let i = 0;
    const length = result.length;
    let last = null;
    while (i < length) { // Otro loop porque dije "podria gastar más tiempo"
            let linkedList = {
                    val: Number(result[i]), // Dígito actual
                    next: last // Enlaza al nodo anterior
            }
            last = linkedList // Actualiza el último nodo
            i++;
    }
    return last // Retorna la cabeza de la nueva lista enlazada
};