【LeetCode】2. Add Two Numbers 解答・解説【Python】

この記事は約3分で読めます。

 

問題

原文

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a single digit. Add the two numbers and return the sum as a linked list.

You may assume the two numbers do not contain any leading zero, except the number 0 itself.

 

Example 1:

Example 2:

Example 3:

 

Constraints:

  • The number of nodes in each linked list is in the range [1, 100].
  • 0 <= Node.val <= 9
  • It is guaranteed that the list represents a number that does not have leading zeros.

 

内容

2つの空ではなく非負整数を含む連結リストが与えられます。数字は逆順で入れられており、各ノードは一桁の数字を含みます。2つの数字を加え、その合計を連結リストとして返してください。

先頭が0から始まる数字はないと仮定して良いです。※0を除く

 

以下補足です。

テストケースを見る限り、2つの連結リストが与えられるので、1つの数字として結合し、逆順に並べ替えた上で数字として足し算し、その結果を再度逆順に並べ替えして、連結リストとして返す必要があります。

list1 = [1,2,3] →321

list2 = [4,5,6] →654

321+654 = 975 →579

579を連結リストとして返すというイメージです。

 

※正しくない可能性があります。

方針

・解答1

→2つの連結リストを結合して逆順に変換して加算し、文字列に戻し、加算結果を逆順にする。

→上記により得た文字列を要素ごとに連結リストの各ノードとして作成して返す

 

解答

解答1:

 

補足・参考・感想

参考

 

 

前:1232. Check If It Is a Straight Line

次:61. Rotate List

LeetCode 解答・解説記事一覧

コメント