Pythonは2つのリンクリストを作成し、それらを追加します。Leetcodeは2つの数値を合計します

class ListNode:
    def __init __(self、x):
        self.val = x 
        self.next = None 


class Solution:
    def addTwoNumbers(self、l1:ListNode、l2:ListNode)-> ListNode:
        "" "は空のリンクリストを作成します。 p、Qはヘッドノードを指し、qは最後に戻るために使用され、pは "" "をトラバースするために使用されます
        p = q = ListNode(0)
        val = 0 

        while valまたはl1またはl2:
            val、cur = divmod( val +(l1.val if l1 else 0)+(l2.val if l2 else 0)、10)
            "" "は
            、2つのノード値とキャリーフラグを加算した結果合計ストアに格納するのと同じです
            sum = val + (l1.val if l1 else 0)+(l2.val if l2 else 0)
            cur = sum%10 剰余を取る
            val = sum // 10 #切り上げ"" " 
            新しいリンクリストを作成する
            p。next = ListNode(cur)
            p = p.next 
            l1 = l1.next if l1elseなし
            l2 = l2.next if l2elseなし
        returnq.next 


"" "リンクリストの作成" "" 
def generateList(l:list)-> ListNode:
    p = q = ListNode(0)
    for val in l:
        p.next = ListNode(val)
        p = p.next 
    return q.next 


"" " outputlinked list" "" 
def printList(l:ListNode):
    while l:
        print( " %d、 "%(l.val)、end = '')#end = ''は、ラップせずに末尾にスペースを追加することを意味し
    ます
        l = l.next print( '')


場合、。 == "__main __":
    l1 = generateList([2、4、3]) 
    l2 = generateList([5,6,4])
    printList(l1)
    printList(l2)
    s = Solution()
    printList(s.addTwoNumbers(l1、l2))

おすすめ

転載: blog.csdn.net/qq_39429779/article/details/108952403