Menu
CoddyTech

Add Two Numbers

Tu reçois deux nombres entiers non négatifs, chacun stocké sous forme de liste chaînée simple de ses chiffres, avec le chiffre de poids faible en premier. Dans la première liste, le nœud i contient le chiffre values1[i] et pointe vers le nœud next1[i]. La deuxième liste fonctionne de la même manière avec next2 et values2. Dans les deux listes, -1 marque la fin de la liste et la tête est le nœud 0. Les nœuds ne sont pas stockés dans l’ordre de la liste, alors suis les liens.

Renvoie les chiffres de la somme des deux nombres, en commençant par le chiffre de poids faible.

Fonction

addTwoNumbers(next1: integer-array, values1: integer-array, next2: integer-array, values2: integer-array) → integer-array
next1integer-array
l’index du nœud auquel chaque nœud du premier nombre est relié, ou -1 pour son dernier nœud
values1integer-array
le chiffre stocké dans chaque nœud du premier nombre
next2integer-array
l’index du nœud vers lequel pointe chaque nœud du deuxième nombre, ou -1 pour son dernier nœud
values2integer-array
le chiffre stocké dans chaque nœud du deuxième nombre
Renvoieinteger-array
les chiffres de la somme, du moins significatif au plus significatif

Contraintes

  • 1 ≤ L1 ≤ 100, où L1 est la longueur de next1 et de values1.
  • 1 ≤ L2 ≤ 100, où L2 est la longueur de next2 et de values2.
  • 0 ≤ values1[i], values2[j] ≤ 9
  • Chaque entrée de next1 est -1 ou un indice de nœud de la première liste, et chaque entrée de next2 est -1 ou un indice de nœud de la deuxième liste.
  • En partant du nœud 0, chaque liste parcourt chacun de ses nœuds exactement une fois, puis atteint -1. Il n’y a pas de cycle.
  • Aucun nombre ne comporte de zéros non significatifs : le dernier nœud d’une liste contient un chiffre différent de 0, sauf si la liste correspond au chiffre unique 0.

Exemples

Entrée
next1 = [2, -1, 1]values1 = [8, 6, 1]next2 = [2, -1, 1]values2 = [7, 5, 2]
Sortie
[5, 4, 1, 1]
Explication
La première liste visite les nœuds 0, 2, 1 et lit 8, 1, 6, soit le nombre 618. La deuxième lit 7, 2, 5, soit le nombre 527. Leur somme est 1145, donc la réponse est 5, 4, 1, 1.
challenge icon

Pour aller plus loin

Comment additionnerais-tu les nombres si les listes stockaient le chiffre le plus significatif en premier ?

Réinitialiser le code
def addTwoNumbers(next1, values1, next2, values2):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Arguments

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

Résultat attendu

[5, 4, 1, 1]