lintcode 鍊錶求和

2021-07-29 17:17:45 字數 979 閱讀 4611

1.題目

你有兩個用鍊錶代表的整數,其中每個節點包含乙個數字。數字儲存按照在原來整數中相反的順序,使得第乙個數字位於鍊錶的開頭。寫出乙個函式將兩個整數相加,用鍊錶形式返回和。

給出兩個鍊錶3->1->5->null5->9->2->null,返回8->0->8->null

2.思路

考慮如何實現進製、和數的每一位如何得到、當鍊表l1與l2不一樣長怎麼辦、最後一位加和為兩位數時需要增加乙個節點盛放。

首先:從l1和l2頭結點處開始各取乙個值進行求和(注意 在迴圈中要加上上一位數求和後的進製),將求和後的數模十取餘即求得和中的該位數字,新增到新鍊錶中。

當迴圈到有乙個空了之後,只對沒空的那個鍊錶剩餘的位數逐一重複上述迴圈(需要用while迴圈是因為考慮進製)。

最後一位加和為兩位數時,在和鍊錶最後增加乙個節點存放多出來的一位數字。

3.**

/*** definition for singly-linked list.

* struct listnode

* };

*/class solution

listnode *extra;

if(l1==null)

if(l2==null)

while(extra!=null)

if(t!=0)

return head->next;}};

4.感想

遇到的第乙個難題是不知道怎麼讓進製迴圈起來,覺得以前的學習有點不熟悉了。

最後就是不停的mle,因為我一開始寫的是只剩乙個不空的時候分別由l1、l2兩種情況迴圈了一遍,不知道為什麼測試資料過了最後提交就是過不去。。。。暈乎乎的。。。

LintCode 鍊錶求和

1.描述 你有兩個用鍊錶代表的整數,其中每個節點包含乙個數字。數字儲存按照在原來整數中相反的順序,使得第乙個數字位於鍊錶的開頭。寫出乙個函式將兩個整數相加,用鍊錶形式返回和。樣例 給出兩個鍊錶3 1 5 null和5 9 2 null,返回 8 0 8 null 2.分析 第一眼看過去覺得這個題目把...

LintCode 鍊錶求和

描述 你有兩個用鍊錶代表的整數,其中每個節點包含乙個數字。數字儲存按照在原來整數中相反的順序,使得第乙個數字位於鍊錶的開頭。寫出乙個函式將兩個整數相加,用鍊錶形式返回和。樣例 給出兩個鍊錶3 1 5 null和5 9 2 null,返回8 0 8 null definition for singly...

LintCode 鍊錶求和

問題分析 我們通過遍歷兩個鍊錶拿到每個位的值,兩個值加上前一位進製值 0或者1 模10就是該位的值,除以10就是向高位的進製值 0或者1 由於兩個鍊錶可以不一樣長,所以要及時判斷,一旦為null,該位的值就要變成0。有一種情況比較特殊,比如 1 1 1 null,9 8 8 null,最終結果為0 ...