题目链接:
点击这里
题解:
var addTwoNumbers = function add(l1, l2){
let carray = 0
let list1 = l1
let list2 = l2
let result = new ListNode(0)
let res = result
while(list1 || list2 || carray){ // 根据最长的计算
let val1 = list1?.val ?? 0
let val2 = list2?.val ?? 0
let currentTotal = val1 + val2 + carray
if(currentTotal > 9){
carray = 1
currentTotal = currentTotal - 10
} else {
carray = 0
}
// 制作result
res.next = new ListNode(currentVal)
res = res.next
list1 = list1?.next
list2 = list2?.next
}
return result.next
}
知识点:
- ?. 操作符:判断问好前面是否为true,是true就取属性值,否则返回undefined
- ?? 操作符:判断操作符前面是否是null/undefined, 是的话返回后面的值,否则返回前面值