LintCode 鍊錶求和

2021-09-08 18:56:32 字數 937 閱讀 3222

問題分析:

我們通過遍歷兩個鍊錶拿到每個位的值,兩個值加上前一位進製值(0或者1)模10就是該位的值,除以10就是向高位的進製值(0或者1)。

由於兩個鍊錶可以不一樣長,所以要及時判斷,一旦為null,該位的值就要變成0。

有一種情況比較特殊,比如:1->1->1->null, 9->8->8->null,最終結果為0->0->0->1->null,需要保留最高位。

而1->1->1->null, 9->8->7->null,最終結果為0->0->9->null,則不需要保留最高位,最後應該加乙個判斷。

問題求解:

public

class

solution

prelistnode =nowlistnode;

nowlistnode = new listnode(0);

prelistnode.next =nowlistnode;

}//最後還要多來一次判斷,因為有一種可能,兩個鍊錶一樣長,最後一位又向上進了一位

val = ((l1 == null ? 0 : l1.val) + (l2 == null ? 0 : l2.val) + add) % 10;

add = ((l1 == null ? 0 : l1.val) + (l2 == null ? 0 : l2.val) + add) / 10;

nowlistnode.val =val;

//如果最後一位又向上進了一位,新的最後一位不為0,應該保留,否則就為0,應當捨棄

if(nowlistnode.val == 0)

return

resultlistnode;

}}class

listnode

}

lintcode 鍊錶求和

1.題目 你有兩個用鍊錶代表的整數,其中每個節點包含乙個數字。數字儲存按照在原來整數中相反的順序,使得第乙個數字位於鍊錶的開頭。寫出乙個函式將兩個整數相加,用鍊錶形式返回和。給出兩個鍊錶3 1 5 null和5 9 2 null,返回8 0 8 null 2.思路 考慮如何實現進製 和數的每一位如何...

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...