每日一題3 兩數相加

2021-09-27 21:33:24 字數 1267 閱讀 9724

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。

如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。

您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。

示例:

輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)

輸出:7 -> 0 -> 8

原因:342 + 465 = 807

在計算機中實現兩個數相加的方法是

s =a

+b+c

s = a + b + c

s=a+b+

cs-和,a-被加數,b-被加數,c-進製

注意事項

1.初始時 c=0

c=0c=

02.當其中乙個鍊錶的數加完時,計算的式子將變成s=a

+c

s = a + c

s=a+

c(或s=b

+c

s = b + c

s=b+

c)的形式,因此要對剩餘的鍊錶中的資料繼續相加。

3.當所有的鍊錶中的元素已經計算完畢,如果c!=

0c!=0

c!=0

,那麼應該給結果鍊錶多分配乙個結點儲存進製。

4.鍊錶的輸入採用頭插法,根據計算過程和結果的形式,結果鍊錶的生成採用尾插法;為了便於鍊錶的操作,開始時給結果鍊錶分配乙個空結點,只需返回空結點指向的鍊錶即可。

#include#includeusing namespace std;

/*** definition for singly-linked list.

* struct listnode

* };

*/struct listnode

};class solution

listnode* addtwonumbers(listnode* l1, listnode* l2)

if (l1)

}else if (l2)

} if (c)

return ans->next;

}};int main()

while (cin >> t)

solution s;

listnode * c;

c = s.addtwonumbers(a, b);

return 0;

}

Leetcode每日一題 兩數相加

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。剛拿到題目的時候沒有仔細思考,先想的是寫乙...

每日一題 兩數相加(中等)

給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 ...

每日一題 2 兩數相加

1 題目 給你兩個 非空 的鍊錶,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式儲存的,並且每個節點只能儲存 一位 數字。請你將兩個數相加,並以相同形式返回乙個表示和的鍊錶。你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 1 輸入 l1 2,4,3 l2 5,6,4 輸出 7...