Fügen Sie zwei Zahlen hinzu (Videoübersicht an Station B ansehen)

1  '' ' 
2  Fügen Sie zwei Zahlen hinzu:
 3      Geben Sie zwei nicht leere verknüpfte Listen an, um zwei nicht negative Ganzzahlen darzustellen.
 4 Die      entsprechenden Ziffern werden in umgekehrter Reihenfolge gespeichert. Jeder Knoten kann nur eine Ziffer speichern.
 5  Beispiel:
 6      Eingabe: (2-> 4-> 3) + (5-> 6-> 4)
 7      Ausgabe: 7-> 0-> 8
 8      Grund: 342 + 465 = 807
 9  
10  '' ' 
11  ' ' ' 
12 ist  Klasse ListNode:
 13      : die __init __ DEF (self, X)
 14          Anruf , wenn die Klassendeklaration #
 15          self.val X =
 16          self.next = None
 17.          # selbst in der Klassendeklaration einer Funktion auf sich selbst bezieht sich nur hinzuzufügen , Sie können auf eigene Elemente und andere Funktionen zugreifen.
 18  a = ListNode (10086)
 19  # print (a, a.
val)20  # <__ main __. ListNode-Objekt bei 0x000001F76D46A148> 10086 21  
22  # # Stellen Sie fest, dass das
 Endelement auf das Kopfelement zeigt
 23  # move = a 
 24  # für i im Bereich (4):
 25  # temp = ListNode (i)
 26  # # temp is ListNode-Knoten
 27  # move.next = temp
 28  # # move Der folgende Knoten ist temp 
 29  # move = move.next
 30  # # Bewegen Sie den Knoten nach unten
 31  # move.next = a 32  # # Setzen Sie den Kopfknoten auf
 eine 
 33-  Klasse     Lösung1 :
 34  def addTwoNumbers (self, l1: ListNode, l2: ListNode) -> ListNode:
 35          res = ListNode (10086)
 36         move = res 
 37          Übertrag = 0
 38          # Übertrag
 39          während l1! = Keine oder l2! = Keine:
 40              wenn l1 == Keine:
 41                  l1, l2 = l2, l1
 42                  # Ersetzen Sie die Position, verwenden Sie l1 als Ausgang
 43,              wenn l2 = = Keine:
 44                  Übertrag, l1.val = divmod ((l1.val + Übertrag), 10)
 45                  # Aktualisieren l1
 46                  move.next = l1
 47                  # Daten setzen
 48                  l1, l2, move = l1.next, l2 .next, move.next
 49                  # Daten nach unten verschieben
 50              else:
51                  Carry, l1.val = divmod ((l1.val + l2.val + Carry), 10)
 52                  # Wenn keine None sind, werden die entsprechenden Positionen hinzugefügt und der Rest
 53                  move.next = l1
 54                  # Aktualisierungsdaten
 55                  L1, move = l1.next, move.next
 56                  # abwärts bewegt
 57          IF == mit Carry . 1:
 58              move.next = ListNode (mit Carry)
 59          return res.next
 60  
61  ' '' 
62 ist  Klasse ListNode:
 63      DEF  die __init__ (Self, X):
 64          # ausgeführt wird, wenn der Anruf in der Klassendeklaration 
65          self.val =X
 66          self.next = None
 67          # Selbst bezieht sich selbst Zugriffsfunktionen in der Klasse deklariert andere Elemente und deren Funktionen hinzufügen müssen 
68  # A = ListNode (10086) 
69  
70  # iterative Formulierung 
71  Klasse Solution1:
 72      DEF AddTwoNumbers (Self, L1: ListNode, L2: ListNode) -> ListNode:
 73          DEF diese (N1, N2, mit Carry = rekursive 0):
 74              IF N1 == None und N2 == None:
 75                  Rückkehr ListNode (1.) IF mit Carry = 1 = die sonst keine
 76                  # wenn es einen Übertrag - Ausgang ist
77              IF n1 == None:
 78                  N1, N2 = N2, n1
 79                  # , wenn die Leerposition n1 ersetzt ist 
80                  return rekursive Diese (n1, ohne, mit Carry)
 81                  # rekursiv n1 rekursive Verwendung von 
82              IF N2 == None:
 83                  mit Übertrag, n1.val divmod = ((+ n1.val mit Übertrag), 10 )
 84                  # Rückgabewert und Übertragswert wird der Wert von n1 ersetzen ist 
85                  n1.next = rekursive diese (n1.next, ohne, mit Übertrag)
 86                  # Rufen Sie weiterhin die nächsten Daten von n1 auf, aktualisieren Sie die verknüpfte Liste 
87                  von n1 und geben Sie n1
 88 zurück             mit Carry, n1.val divmod = ((+ n2.val v1.val mit Carry +), 10 )
 89              # , wenn ein Nullwert nicht vorhanden ist , werden summiert , um den Wert von n1 zu aktualisieren 
90              n1.next = Diese (n1.next rekursiv, N2 .next mit Carry)
 91              # Sollwert in jedem nachfolgenden n1 n1 und n2 nächsten Rufbedienung 
92              return n1 
 93          return diese (L1 rekursiv, L2)
 94          # an der Innenseite der Funktion zurückzukehren

2020-04-11

Ich denke du magst

Origin www.cnblogs.com/hany-postq473111315/p/12682862.html
Empfohlen
Rangfolge