思路:
因为倒序的,所以按小学数学中的相加进位处理即可。需注意,如果最后加完进位还有剩的情况。
代码:
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 } }
本站由以下主机服务商提供服务支持:
0条评论