https://leetcode-cn.com/problems/add-two-numbers/
func addTwoNumbers(_ l1: ListNode?, _ l2: ListNode?) -> ListNode? {
//先定义一个虚拟头结点,真实头结点为dummyNode.next
let dummyNode = ListNode(0)
//当前节点
var curNode = dummyNode
var carry = 0
var sum = 0
var l1Node = l1
var l2Node = l2
while (l1Node != nil) || (l2Node != nil) {
sum = (l1Node?.val ?? 0) + (l2Node?.val ?? 0) + carry
carry = sum / 10
curNode.next = ListNode(sum % 10)
curNode = curNode.next!
if l1Node != nil {
l1Node = l1Node?.next
}
if l2Node != nil {
l2Node = l2Node?.next
}
}
if carry == 1 {
curNode.next = ListNode(1)
}
return dummyNode.next
}
网友评论