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
};