Вопрос:
Вам даны два непустых связанных списка, представляющих два неотрицательных целых числа.Цифры хранятся в обратном порядке, и каждый из их узлов содержит одну цифру.Добавьте два числа и верните их в виде связанного списка.
Можно предположить, что два числа не содержат начального нуля, кроме самого номера 0.
Пример:
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
Explanation: 342 + 465 = 807.
Предлагаемое решение:
function ListNode(val) {
this.val = val;
this.next = null;
}
// adding two Linked Lists.
var addTwoNumbers = function(l1, l2) {
const temp = new ListNode(0);
let resultPointer = temp;
var digit = 0;
var carryover = 0;
while(
l1!== null ||
l2 !== null
){
var sum = 0;
if(l1!== null){
sum += l1.val;
l1 = l1.next;
}
if(l2!== null){
sum += l2.val;
l2 = l2.next;
}
sum = sum + carryover;
carryover = sum >= 10 ? 1 : 0;
resultPointer.next = new ListNode(sum % 10);
resultPointer = resultPointer.next;
}
return temp.next;
};
Вывод: [7,0,8];
Почему следующее изменение выводит список [].
let resultPointer = new ListNode(0);
return resultPointer.next();
Любые предложения будут полезны.