題目:2.兩數相加
description
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。
如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。
您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
sample
輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)solution輸出:7 -> 0 -> 8
原因:342 + 465 = 807
首先將兩條鍊錶合併成一條鍊錶,再進行進製運算,使得鍊錶每個節點只能儲存一位數字。
具體操作:雙指標,各乙個指標指向每條鍊錶的頭節點,如果都不為空,將第二條鍊錶的節點的值加到第一條節點的值上,在一起往後移動。如果出現指向空,直接將上次的指標指向不為空的,結束遍歷。如果都為空,直接結束遍歷。
這樣就將兩條鍊錶合併成了一條鍊錶。
然後遍歷得到的鍊錶,若當前節點的值大於等於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 ...