/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} l1
* @param {ListNode} l2
* @return {ListNode}
*/
var addTwoNumbers = function (l1, l2) {
let res = new ListNode(),
head = res,
cur1 = 0,
cur2 = 0,
next = 0
while (l1 || l2 || next) {
cur1 = l1 && l1.val || 0
cur2 = l2 && l2.val || 0
l1 = l1 && l1.next
l2 = l2 && l2.next
let sum = (cur1 + cur2 + next) % 10
next = Math.floor((cur1 + cur2 + next) / 10)
res.next = new ListNode(sum)
res = res.next
}
return head.next
};