美文网首页Python学习之旅
Python - LeetCode - 两数相加

Python - LeetCode - 两数相加

作者: 拔萝卜占坑 | 来源:发表于2018-12-24 22:38 被阅读0次

    两数相加

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

    如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

    您可以假设除了数字 0 之外,这两个数都不会以 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
    

    完整源码:
    如果有更好的写法,还请留下你的脚印

    相关文章

      网友评论

        本文标题:Python - LeetCode - 两数相加

        本文链接:https://www.haomeiwen.com/subject/fcitlqtx.html