トピックリンク: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 }