LeetCode面の質問02.05。サミングリスト

トピックリンク:https://leetcode-cn.com/problems/sum-lists-lcci/

リンクリストの表現2つの整数を考えると、各ノードは、数字が含まれています。

これらの数字は、リストのヘッダー行のビットであり、逆に記憶されています。

これら二つの整数の関数sumを書き、リンクリストとして結果を返します。

 

例:

入力:(7 - > 1 - > 6)+(5 - > 9 - > 2)、すなわち、617 + 295
出力:2 - > 1 - > 9、すなわち912
アドバンスト:ビット数が前方保存期間であると仮定すると、再びそれを行います。

例:

入力:(6 - > 1 - > 7)+(2 - > 9 - > 5)、すなわち、617 + 295
出力:9 - > 1 - > 2、すなわち、912

1  / * *
 2  重リンクリストのための*の定義。
3  *構造体ListNode {
 4  * INTヴァル。
5  次の*構造体ListNode *;
6  *}。
7   * / 
8  
9  構造体 ListNode * addTwoNumbers(構造体 ListNode * L1、構造体 ListNode * L2){
 10      構造体 ListNode * Q = L1、* P = L2、* CUR、* 事前。
11      INT LEN1 = 0、LEN2 = 0、LEN = 0 12      一方(Q){
 13          LEN1 ++;
14          Q = Q-> 次。
15      }
 16      ながら(P){
 17          LEN2 ++ 18          、P = P-> 次。
19      }
 20      のintフラグ= 0 21      であれば(LEN1> LEN2){
 22          、Q = L1。
23          、P = L2。
24          フラグ= 1 25      } {
 26          、Q = L2。
27          、P = L1。
28         フラグ= 0 29      }
 30      int型の車= 0 、X、Y。
31      一方(Q){
 32          、X = Q Q->ヴァル:0 33          、Y = P P->ヴァル:0 34          Q->ヴァル=(X + Y +車)%10 35          車=(X + Y +車)/ 10 36          予備= Q。
37          であれば(Q)Q = Q-> 次。
38          であれば(P)P = P-> 次。
39      }
 40      であれば(車){
 41          構造体ListNode * TMP =(構造体 ListNode *)はmallocはsizeof構造体ListNode))。
42          tmp->ヴァル= 車。
43          tmp->次= NULL;
44          プレ>次= TMP。
45      }
 46      リターンフラグ?L1:L2。
47 }

 

おすすめ

転載: www.cnblogs.com/shixinzei/p/12400602.html
おすすめ