Python crée deux listes chaînées et les ajoute; Leetcode additionne deux nombres

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


class Solution: 
    def addTwoNumbers (self, l1: ListNode, l2: ListNode) -> ListNode: 
        "" "crée une liste chaînée vide, p, Q pointe vers le nœud principal, q est utilisé pour retourner à la fin, p est utilisé pour traverser "" " 
        p = q = ListNode (0) 
        val = 0 

        tandis que val ou l1 ou l2: 
            val, cur = divmod ( val + (l1.val if l1 else 0) + (l2.val if l2 else 0), 10) 
            "" "équivaut à 
            sum stocke le résultat de l'addition des deux valeurs de nœud et de l'indicateur de report 
            sum = val + (l1.val if l1 else 0) + (l2.val if l2 else 0) 
            cur = sum% 10 #take restder 
            val = sum // 10 #round up "" " #Créer 
            une nouvelle liste chaînée
            p.next = ListNode (cur) 
if __name__ == "__main__": 
    l1 = generateList ([2, 4,3]) 
    l2 = generateList ([5,6,4])
            p = p.next 
            l1 = l1.next if l1 else None 
            l2 = l2.next if l2 else None 
        return q.next 


"" "Create linked list" "" 
def generateList (l: list) -> ListNode: 
    p = q = ListNode (0) 
    pour val dans l: 
        p.next = ListNode (val) 
        p = p.next 
    return q.next 


"" "sortie liste liée" "" 
def printList (l: ListNode): 
    while l: 
        print (" % d, "% (l.val), end = '') #end = '' signifie ajouter un espace à la fin sans 
        retour à la ligne l = l.next 
    print ('')


    printList (l1) 
    printList (l2) 
    s = Solution () 
    printList (s.addTwoNumbers (l1, l2))

Je suppose que tu aimes

Origine blog.csdn.net/qq_39429779/article/details/108952403
conseillé
Classement