思路:
因为倒序的,所以按小学数学中的相加进位处理即可。需注意,如果最后加完进位还有剩的情况。
代码:
class Solution {
fun addTwoNumbers(l1: ListNode?, l2: ListNode?): ListNode? {
val dummyHead = ListNode(0)
var cur = dummyHead
var p = l1
var q = l2
//进位
var carry = 0
while (p != null || q != null) {
val x = p?.`val` ?: 0
val y = q?.`val` ?: 0
val sum = carry + x + y
carry = sum / 10
cur.next = ListNode(sum % 10)
cur = cur.next!!
p = p?.next
q = q?.next
}
if (carry > 0) {
cur.next = ListNode(carry)
}
return dummyHead.next
}
} 本站广告由 Google AdSense 提供
0条评论