* Definition for singly-linked list.
function ListNode (val) {
const addTwoNumbers = function (l1, l2) {
const sumListNode = new ListNode(0);
let current = sumListNode;
// 如果指针 pointer1、pointer2 还未移动结束
while (pointer1 || pointer2) {
// 如果 pointer1 已经移动到链表 l1 的末尾,当前值为0
const num1 = pointer1 ? pointer1.val : 0;
// 如果 pointer1 已经移动到链表 l1 的末尾,当前值为0
const num2 = pointer2 ? pointer2.val : 0;
const sum = carry + num1 + num2;
carry = Math.floor(sum / 10);
// sumListNode添加一个当前 l1 和 l2 相加的node ,值为 sum的个位数
current.next = new ListNode(sum % 10);
// 如果 pointer1 未移动到 l1 的结尾,继续后移一位
pointer1 = pointer1.next;
// 如果 pointer2 未移动到 l2 的结尾,继续后移一位
pointer2 = pointer2.next;
// 如果有进位,两数之和的联表,加一个进位的 node
current.next = new ListNode(carry);