LeetCode 兩個鍊錶相加得到乙個新的 鍊錶

2021-10-01 05:47:31 字數 972 閱讀 3885

這一題最後沒有做出來,答案來自 題解的精解答案

先看題目吧:

思考:342 +462  放在 鍊錶中就是(2,4,3)和 (2,6,4),當我們對第乙個鍊錶元素進行操作的時候,就是對它的個位數操作,然後如果超過10就進製,這是符合我們平常的思考習慣的,你就不要再倒過來了。然後還要考慮,題目並沒有說明  兩個的位數是一樣的,所以 假如說  232+46 要補成 232+046 ,也就是每一次迴圈完之後要判斷  ,下個元素是否為空。此外比較需要注意的是,你的list的定義。

以下是答案。

/**

* definition for singly-linked list.

* public class listnode

* }*/class solution

}

class solution 

if(carry == 1)

return pre.next;}}

參考:

listnode的結構在注釋中已經給了

public class listnode   //賦值鍊錶的值

}

中心思想    carry用來表示  進製, sum用來表示  真正存到鍊錶的值 ,例如9+ 7 =16  ,carry 就是 1 ,sum就是6 ,然後它的賦值是這樣賦值的。

cur.next = new listnode(sum % 10);
於是這個  值就會存到  cur中 , 然後就是迴圈條件,它們分別是 l1向後推移一位 ,l2向後推移一位, cur向後推移一位。

當他們到頂了之後,此時跳出while 迴圈,看有沒有進製1 ,如果有的話,還需要給cur 賦值乙個最高位 1

兩個已經逆序的鍊錶相加

題目如下 和acm大數相加問題類似,要處理好進製問題 給你兩個 非空 的鍊錶,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式儲存的,並且每個節點只能儲存 一位 數字。請你將兩個數相加,並以相同形式返回乙個表示和的鍊錶。你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 l1...

leetcode 鍊錶相加

給定兩個用鍊錶表示的整數,每個節點包含乙個數字。這些數字是反向存放的,也就是個位排在鍊錶首部。編寫函式對這兩個整數求和,並用鍊錶形式返回結果。示例 輸入 7 1 6 5 9 2 即617 295 輸出 2 1 9,即912 採用原地演算法,比較兩個鍊錶長度,如果長度一致,那麼鍊錶相加到任一鍊錶,計算...

leetcode 2鍊錶相加

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