2つの数字を追加します(ステーションBでビデオの概要を見る)

1  '' ' 
2 2  つの数値を追加します:
 3      空でないリンクリストを2つ指定して、2つの負でない整数を表します
 4      それぞれの数字は逆の順序で保存されます各ノードは1つの数字しか保存できません
 5  例:
 6      入力:(2-> 4-> 3)+(5-> 6-> 4)
 7      出力:7-> 0-> 8
 8      理由:342 + 465 = 807
 9  
10  '' ' 
11  ' ' ' 
12は、 クラスListNode:
 13である     。__init __ DEF(自己、X)
 14          呼び出したときに、クラス宣言#
 15          self.val X =
 16          self.next =なし
 。17          #自己のみ追加する関数のクラス宣言自体を指し独自の要素やその他の関数にアクセスできます
 18  a = ListNode(10086)
 19  #print(a、a。
val)20  #<__ main __。ListNode object at 0x000001F76D46A148> 10086
 21  
22  ##テール要素がヘッド要素を指すことを認識
 23  #move = a 
 24  #i for range(4):
 25  #temp = ListNode(i)
 26  ##temp is ListNodeノード
 27  #move.next = temp
 28  ##move以下のノードはtemp 
 29です #move = move.next
 30  ##ノードを下に移動
 31  #move.next = a 32  ##ヘッドノードを再ポイント
 a 
 33  クラスSolution1:
 34      def addTwoNumbers(self、l1:ListNode、l2:ListNode)-> ListNode:
 35          res = ListNode(10086)
 36         move = res 
 37          キャリー= 0
 38          #キャリー
 39          while l1!=なしまたはl2!=なし:
 40              if l1 ==なし:
 41                  l1、l2 = l2、l1
 42                  #位置を置き換え、l1を出力として使用
 43              l2 =の場合= =なし:
 44                  キャリー、l1.val = divmod((l1.val +キャリー)、10)
 45                  #更新l1
 46                  move.next = l1
 47                  #データを設定
 48                  l1、l2、移動= l1.next、l2 .next、move.next
 49                  #データを50  下に移動する
             else:
51                  キャリー、l1.val = divmod((l1.val + l2.val +キャリー)、10)
 52                  #どれもなしでない場合、対応する位置が追加され、残りが作成されます
 53                  move.next = l1
 54                  #更新データ
 55                  L1、移動= l1.next、move.next
 56は、                 #は下方に移動
 57は         キャリーと== IFは、1:
 58              (キャリー付き)move.next = ListNode
 59          res.nextリターン
 60  
61である ' '' 
62は、 クラスListNode:
 63であります     DEF  __init__ (セルフ、X):
 64          #は場合クラス宣言に呼び出しが行わ
65          self.val =X
 66          self.next = なし
 67          クラスの缶アクセス機能は、他の要素とそれらの機能を追加する必要がで自己が自分自身を参照するには、宣言
68  (10086)A = ListNode 
69  
70  反復文言
71で クラス解決法1:
 72      DEF addTwoNumbers(self、l1:ListNode、l2:ListNode)-> ListNode:
 73          def recursive(n1、n2、carry = 0):
 74              if if n1 == None and n2 == None:
 75                  return ListNode(1)if carry = 1 = なし
 76                  キャリー出力がある場合
77              IF n1は== なし:
 78                  N1、N2 = N2、N1
 79                  空の位置N1交換時れる
80                  リターンはこの(N1、キャリー付きなし)再帰
 81                  n1を使用していない再帰再帰を
82              IF N2 == なし。
 83                  キャリーと、n1.val divmod =()キャリー付き(+ n1.val、10 )、
 84                  #の戻り値とキャリーの値がN1の値が置き換えられます
85                  n1.next = 再帰この(n1.next、キャリー付き無し)
 86                  n1の次のデータの呼び出しを続行し、n1リンクリストを更新します
87                  return n1
 88             キャリーと、n1.val divmod =((+ n2.val v1.valキャリー+付き)、10 )、
 89              ヌル値が存在しない場合、N1の値を更新するために合計される
90              n1.next = 再帰この(n1.next、N2を.next)キャリー付き
 91である             以降のすべてのN1 n1とn2の次の呼び出し時の設定値が
92              リターンN1 
 93          リターンはこの(L1、L2)再帰
 94          #は、関数の内部に戻るを

2020-04-11

おすすめ

転載: www.cnblogs.com/hany-postq473111315/p/12682862.html