C LeetCode每日一題 2 兩數相加

2021-10-09 23:18:18 字數 1016 閱讀 8656

題目:2.兩數相加

description

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

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

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

sample

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

輸出:7 -> 0 -> 8

原因:342 + 465 = 807

solution

首先將兩條鍊錶合併成一條鍊錶,再進行進製運算,使得鍊錶每個節點只能儲存一位數字。

具體操作:雙指標,各乙個指標指向每條鍊錶的頭節點,如果都不為空,將第二條鍊錶的節點的值加到第一條節點的值上,在一起往後移動。如果出現指向空,直接將上次的指標指向不為空的,結束遍歷。如果都為空,直接結束遍歷。

這樣就將兩條鍊錶合併成了一條鍊錶。

然後遍歷得到的鍊錶,若當前節點的值大於等於10,就會產生進製,那麼下個節點的值加1。直到最後乙個節點,若最後乙個節點的值大於等於10,就要建立乙個新的節點,賦值為1。至此,完成進製運算。

返回最初的頭節點即可!

ac code

class

solution

}else

if(h2==null&&h1)

break;}

if(h1) h1=h1-

>next;

if(h2) h2=h2-

>next;

} h1=l1;

int num=0;

//記錄進製

while

(h1)

else num=0;

if(h1-

>next==null&&num)

h1=h1-

>next;

}return l1;}}

;

ps:希望對你有幫助!

每日一題2

尋找1000內的完數 個人總結 for迴圈中的變數與for迴圈外的變數再次搞混 導致輸出錯誤 完數 乙個數剛好等於它所有因子之和。基本思路很簡單 for迴圈找到因子並存放陣列,且求總和 再判斷num與sum關係即可 但此時應注意num和i的初始值且i與num大小關係,否則將無法進入for迴圈。i 2...

每日一題 2 兩數相加

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

leetcode每日一題 2 兩數相加

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