Python-两数相加

心不动则不痛 提交于 2020-03-01 10:55:48
class Node:
    def __init__(self, data):
        self.data= data
        self.next = None

class Solution:
    def addTowNumbers(self, l1: Node, l2: Node) ->Node:
        prenode = Node(0)
        lastnode = prenode
        val = 0
        while val or l1 or l2:
            val, cur = divmod(val + (l1.data if l1 else 0) + (l2.data if l2 else 0), 10)
            lastnode.next = Node(cur)
            lastnode = lastnode.next
            l1 = l1.next if l1 else None
            l2 = l2.next if l2 else None
        return prenode.next

def generateList(l: list) -> Node:

    prenode = Node(0)
    lastnode = prenode
    for val in l:
        lastnode.next = Node(val)
        lastnode = lastnode.next
    return prenode.next

def printList(l: Node):
    result = []
    while l:
        print(l.data,type(l.data))
        result.append(l.data)
        l = l.next
    return result


if __name__ == '__main__':
    l1 = generateList([1, 5, 8])
    l2 = generateList([9, 1, 2, 9])
    s = Solution()
    sum = s.addTowNumbers(l1, l2)
    result = printList(sum)
    print(result)

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!