2.两数相加

2020-02-27  本文已影响0人  寂灭天骄小童鞋

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
}
上一篇 下一篇

猜你喜欢

热点阅读