Menu
CoddyTech

Add Two Numbers

2つの非負整数が与えられます。それぞれの整数は、最下位の桁が先頭になるように、各桁を単方向連結リストに格納しています。1つ目のリストでは、ノード i に桁 values1[i] が格納され、ノード next1[i] につながっています。2つ目のリストも同様に、next2 と values2 を使います。どちらのリストも -1 で終端し、先頭ノードは 0 です。ノードはリストの順番どおりには格納されていないため、リンクをたどってください。

2つの整数の和の各桁を、最下位の桁から順に返してください。

関数

addTwoNumbers(next1: integer-array, values1: integer-array, next2: integer-array, values2: integer-array) → integer-array
next1integer-array
最初の数値の各ノードがリンクするノードのインデックス。最後のノードの場合は -1
values1integer-array
最初の数の各ノードが保持する数字
next2integer-array
2つ目の数値の各ノードがリンクするノードのインデックス。最後のノードの場合は -1
values2integer-array
2つ目の数の各ノードが保持する桁
戻り値integer-array
合計の各桁を、最下位桁から順に

制約

  • 1 ≤ L1 ≤ 100。ここで、L1はnext1およびvalues1の長さです。
  • 1 ≤ L2 ≤ 100。ここで、L2 は next2 と values2 の長さです。
  • 0 ≤ values1[i], values2[j] ≤ 9
  • next1 の各要素は -1 または最初のリストのノードインデックスであり、next2 の各要素は -1 または2番目のリストのノードインデックスです。
  • ノード 0 から始めて、各リストはそれぞれのノードを一度ずつすべて訪れ、その後 -1 に到達します。サイクルはありません。
  • どの数にも先頭のゼロはありません。リストが1桁の0だけである場合を除き、リストの最後のノードには0以外の数字が格納されています。

例

入力
next1 = [2, -1, 1]values1 = [8, 6, 1]next2 = [2, -1, 1]values2 = [7, 5, 2]
出力
[5, 4, 1, 1]
説明
最初のリストはノード 0, 2, 1 を順にたどり、8, 1, 6 を読み取ります。これは数値の618です。2つ目のリストからは 7, 2, 5 を読み取り、数値の527になります。合計は1145なので、答えは 5, 4, 1, 1 です。
challenge icon

発展問題

リストに最上位桁が先に格納されている場合、どのようにして数値を足しますか?

コードをリセット
def addTwoNumbers(next1, values1, next2, values2):
    # ここにコードを書いてください

テスト #1

テスト #2

テスト #3

引数

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

期待される出力

[5, 4, 1, 1]