*参考答案如下:
/* 1.逐级求和 */
function addTwoNumbers(l1, l2) {
//创建函数addTwoNumbers(变量l1,变量l2)
let l3 = null, node = null, carry = 0;
//声明新链表l3,指针node,进位符carry
while (l1 || l2) {
//当l1或l2存在时,执行下列循环
const n1 = l1 ? l1.val : 0;
//声明n1=l1(如果l1存在,则为l1的value,否则为0)
const n2 = l2 ? l2.val : 0;
//声明n2=l2(如果l2存在,则为l2的value,否则为0)
const sum = n1 + n2 + carry;
//声明求和sum=n1(l1的值)+n2(l2的值)+carry
carry = Math.floor(sum / 10);
//carry向下取整
if (!l3) { l3 = node = new ListNode(sum % 10); }
//如果不存在链表l3,则指针node=新链表("输入值转为链表格式"),并赋值于l3
else { node = node.next = new ListNode(sum % 10); }
//否则node后移,并赋值新链表
if (l1) { l1 = l1.next; }
//如果存在l1, 则l1后移
if (l2) { l2 = l2.next; }
//如果存在l2,则l2后移
}
if (carry > 0) { node.next = new ListNode(carry); }
//如果carry大于0,指针node后移并赋值新链表(carry)
return l3;
//返回链表l3
}
/* 如果大家有其他解法, 欢迎分享~ */