一文看懂如何使用鍊錶來計算超過int上限的兩數之和

2021-10-04 23:51:46 字數 1557 閱讀 7781

他還有乙個高階,不能翻轉鍊錶,好吧我一開始就沒準備用鍊錶翻轉,棧不香嗎???

這題其實很簡單的,把兩個鍊錶分別入棧,stack1,stack2.

這時候就可以從小到大加了。直接小手一揮,**如下

public listnode addtwonumbers

(listnode l1, listnode l2)

while

(l2!=null)

//統計結果

int ans=0;

//每一次記錄當前的位數,第一位就乘以1,第二位就乘以2

int times=

1;

只要有乙個非空就繼續

while

(!stack1.

isempty()

||!stack2.

isempty()

) listnode prev=null;

//對結果鍊錶化,從後往前給結果

while

(ans!=0)

return prev;

}

美滋滋的試了測試案例就按提交了,萬萬沒想到的是竟然錯了。如果看**就直接發現錯誤的大佬就跳過,看**看的美滋滋,甚至還感覺寫的不錯的童鞋就可以停下來思考一下**錯了。

發個表情包隔斷一下,哈哈

大佬繼續跳過,已經放棄的童鞋,千萬別看答案,自己再看一看,我再給乙個提示,出錯的案例。

到這裡應該就很明朗了吧,其實這個問題的答案在標題裡就有了

超出int上限的就直接到integer.min_value去了。這題確實不難,但是有乙個警醒就是凡是有兩值計算的題,一定要考慮超出範圍的情況(雖然碰到過好幾次這樣的題,但是每次還是會上當,哭了…)

public listnode addtwonumbers

(listnode l1, listnode l2)

while

(l2!=null)

//用於表示進製,因為無法直接使用int值相加,所以就得

//每次累加上鍊表結果,所以需要一位來儲存每次的進製

int more=0;

//初始的上一位是null

listnode prev=null;

//繼續非空就迴圈,並且如果還有相加的進製的話也要進入迴圈

一文看懂,如何開通巨量千川賬戶!

4月9日,巨量千川正式上線,但是仍有不少朋友對巨量千川並不了解。官方定義巨量千川是圍繞抖店的廣告電商一體化平台,為商家和創作者提供抖音電商一體化營銷解決方案。簡單來說,巨量千川 dou 魯班 直播帶貨 短 帶貨 各種電商廣告環節。那麼巨量千川的優勢在 如何註冊巨量千川賬戶,使用巨量千川有哪些注意點?...

陣列與鍊錶 一文讀懂

資料結構是軟體開發中最基礎的部分了,它體現著我們程式設計的內功。大多數人在正兒八經學習資料結構的時候估計是在大學計算機課上,而在實際專案開發中,反而感覺到用得不多。其實也不是真的用得少,只不過我們在使用的時候被很多高階語言和框架元件封裝好了,真正需要自己去實現的地方比較少而已。但別人封裝好了不代表我...

一文輕鬆搞懂 鍊錶反轉

單鏈表反轉 時間複雜度o n 空間複雜度o 1 的方法主要有以下三種 前情提要 設定乙個鍊錶,帶有頭結點。元素為1 2 3 4 倒轉過來應該是 1.頭插法 從第二個元素開始,每次選取乙個元素插入到頭結點和第乙個節點之間。第一步 把2插到head和1之間 第二步 把3插入head與2之間 第三步 把4...