Python - LeetCode - 兩數(shù)相加

兩數(shù)相加

給出兩個(gè) 非空 的鏈表用來表示兩個(gè)非負(fù)的整數(shù)。其中,它們各自的位數(shù)是按照 逆序 的方式存儲(chǔ)的,并且它們的每個(gè)節(jié)點(diǎn)只能存儲(chǔ) 一位 數(shù)字。

如果,我們將這兩個(gè)數(shù)相加起來,則會(huì)返回一個(gè)新的鏈表來表示它們的和。

您可以假設(shè)除了數(shù)字 0 之外,這兩個(gè)數(shù)都不會(huì)以 0 開頭。

示例:
輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
輸出:7 -> 0 -> 8
原因:342 + 465 = 807

def addTwoNumOne(oneListNode, twoListNode):
    isAddOne = False

    sumListNode = None
    sumRootNode = None
    while(oneListNode is not None or twoListNode is not None):
        v1 = 0
        v2 = 0
        if(oneListNode is not None):
            v1 = oneListNode.num
        
        if(twoListNode is not None):
            v2 = twoListNode.num

        sum = v1 + v2
        if(isAddOne):
            sum = sum + 1
            isAddOne = False
        if(sum > 9):
            isAddOne = True
            sum = sum - 10

        if(sumListNode is None):
            sumRootNode = sumListNode = ListNode(sum)
        else:
            sumListNode.next = ListNode(sum)
            sumListNode = sumListNode.next

        if(oneListNode is not None):
            oneListNode = oneListNode.next
        
        if(twoListNode is not None):
            twoListNode = twoListNode.next

    if(isAddOne):
        sumListNode.next = ListNode(1)
    del sumListNode
    return sumRootNode

完整源碼:
如果有更好的寫法,還請(qǐng)留下你的腳印

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 給定兩個(gè)非空鏈表來表示兩個(gè)非負(fù)整數(shù)。位數(shù)按照逆序方式存儲(chǔ),它們的每個(gè)節(jié)點(diǎn)只存儲(chǔ)單個(gè)數(shù)字。將兩數(shù)相加返回一個(gè)新的鏈表...
    數(shù)據(jù)麻瓜閱讀 276評(píng)論 0 0
  • 題目描述: 給定兩個(gè)非空鏈表來表示兩個(gè)非負(fù)整數(shù)。位數(shù)按照逆序方式存儲(chǔ),它們的每個(gè)節(jié)點(diǎn)只存儲(chǔ)單個(gè)數(shù)字。將兩數(shù)相加返回...
    coderzc閱讀 220評(píng)論 0 0
  • 給定兩個(gè)非空鏈表來表示兩個(gè)非負(fù)整數(shù)。位數(shù)按照逆序方式存儲(chǔ),它們的每個(gè)節(jié)點(diǎn)只存儲(chǔ)單個(gè)數(shù)字。將兩數(shù)相加返回一個(gè)新的鏈表...
    Tim在路上閱讀 246評(píng)論 0 0
  • 解法一: 由于鏈表可能很長(zhǎng),我們不能把鏈表轉(zhuǎn)換為整數(shù)再相加,然后再轉(zhuǎn)成鏈表,這樣可能會(huì)發(fā)生整數(shù)越界。我們可以直接遍...
    Little丶Jerry閱讀 551評(píng)論 0 0
  • 引言:用Js攻略leetcode中的算法,將會(huì)介紹自己的思路和注意點(diǎn),一邊學(xué)習(xí)一邊愉快刷題呀。 問題1: 給定兩個(gè)...
    mooory閱讀 1,661評(píng)論 0 0

友情鏈接更多精彩內(nèi)容