function ListNode(val, next) {
this.val = (val === undefined ? 0 : val)
this.next = (next === undefined ? null : next)
}
var addTwoNumbers = function (l1, l2) {
let prehead = new ListNode(-1)
let cur = prehead
let p1 = l1
let p2 = l2
let plus = 0
while (p1 || p2) {
let num1 = p1 !== null ? p1.val : 0
let num2 = p2 !== null ? p2.val : 0
let result = num1 + num2 + plus
cur.next = new ListNode(result % 10)
plus = result > 9 ? 1 : 0
cur = cur.next
if (p1) {
p1 = p1.next
}
if (p2) {
p2 = p2.next
}
}
if (plus === 1) {
cur.next = new ListNode(1)
}
return prehead.next
};