給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。
如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。
您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
示例 :
輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
輸出:7 -> 0 -> 8
原因:342 + 465 = 807
兩個鍊錶以及相加結果均為逆序儲存方式(低位在鍊錶前),利於從前到後計算結果,通過乙個while迴圈不斷計算每位的相加結果,迴圈退出條件為所有數都計算完畢。
每次計算的中間結果用乙個臨時變數儲存,並計算對10的取餘值和進製值,將該位結果儲存到新建的鍊錶中。
最後一步可能會有進製值(進製值只能是1)需單獨新增。
/**
* definition for singly-linked list.
* struct listnode
* };
*/class solution
if(l2!=null)
// 結果鍊錶依然是低位在前
cur->next=new listnode(tmp%10);// 取餘數
tmp/=10;// 進製數用於下次計算
cur=cur->next;
}if(tmp!=0)//(兩個1位數和的進製)只可能是1
cur->next=new listnode(1);// tmp=1
return res->next;
}};
輸入
[2,4,3]
[5,6,4]
輸出
[7,0,8]
leetcode題解記錄 2 兩數相加
給你兩個 非空 的鍊錶,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式儲存的,並且每個節點只能儲存 一位 數字。請你將兩個數相加,並以相同形式返回乙個表示和的鍊錶。你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。輸入 l1 2,4,3 l2 5,6,4 輸出 7,0,8 解釋 34...
LeetCode兩數相加題解
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...
LeetCode第2題題解 兩數相加
題目 leetcode 題目描述 給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0開頭。示例 輸入 2 4 3...