Menu
CoddyTech

Add Two Numbers

Du erhältst zwei nicht negative ganze Zahlen, die jeweils als einfach verkettete Liste ihrer Ziffern gespeichert sind, wobei die Ziffer mit dem kleinsten Stellenwert zuerst kommt. In der ersten Liste enthält Knoten i die Ziffer values1[i] und verweist auf Knoten next1[i]. Die zweite Liste funktioniert genauso, mit next2 und values2. In beiden Listen beendet -1 die Liste, und der Kopf ist Knoten 0. Die Knoten sind nicht in Listenreihenfolge gespeichert, folge also den Verweisen.

Gib die Ziffern der Summe der beiden Zahlen zurück, beginnend mit der Ziffer mit dem kleinsten Stellenwert.

Funktion

addTwoNumbers(next1: integer-array, values1: integer-array, next2: integer-array, values2: integer-array) → integer-array
next1integer-array
der Index des Knotens, mit dem jeder Knoten der ersten Zahl verknüpft ist, oder -1 für deren letzten Knoten
values1integer-array
die Ziffer, die in jedem Knoten der ersten Zahl gespeichert ist
next2integer-array
der Index des Knotens, mit dem jeder Knoten der zweiten Zahl verknüpft ist, oder -1 für den letzten Knoten
values2integer-array
die Ziffer, die jeder Knoten der zweiten Zahl enthält
Gibt zurückinteger-array
die Ziffern der Summe, beginnend mit der niedrigstwertigen

Einschränkungen

  • 1 ≤ L1 ≤ 100, wobei L1 die Länge von next1 und values1 ist.
  • 1 ≤ L2 ≤ 100, wobei L2 die Länge von next2 und values2 ist.
  • 0 ≤ values1[i], values2[j] ≤ 9
  • Jeder Eintrag von next1 ist -1 oder ein Knotenindex der ersten Liste, und jeder Eintrag von next2 ist -1 oder ein Knotenindex der zweiten Liste.
  • Ausgehend vom Knoten 0 besucht jede Liste jeden ihrer Knoten genau einmal und erreicht dann -1. Es gibt keinen Zyklus.
  • Keine Zahl hat führende Nullen: Der letzte Knoten einer Liste enthält eine Ziffer ungleich 0, es sei denn, die Liste besteht aus der einzelnen Ziffer 0.

Beispiele

Eingabe
next1 = [2, -1, 1]values1 = [8, 6, 1]next2 = [2, -1, 1]values2 = [7, 5, 2]
Ausgabe
[5, 4, 1, 1]
Erklärung
Die erste Liste besucht die Knoten 0, 2, 1 und liest 8, 1, 6, die Zahl 618. Die zweite liest 7, 2, 5, die Zahl 527. Ihre Summe ist 1145, also lautet die Antwort 5, 4, 1, 1.
challenge icon

Weiterführende Frage

Wie würdest du die Zahlen addieren, wenn die Listen die höchstwertige Ziffer zuerst speichern?

Code zurücksetzen
def addTwoNumbers(next1, values1, next2, values2):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argumente

next1 = [2, -1, 1]
values1 = [8, 6, 1]
next2 = [2, -1, 1]
values2 = [7, 5, 2]

Erwartete Ausgabe

[5, 4, 1, 1]