LeetCode-兩數相加
題目要求
原題連結:2. 兩數相加
給出兩個 非空 的連結串列用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。
如果,我們將這兩個數相加起來,則會返回一個新的連結串列來表示它們的和。
您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
示例:
輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
輸出:7 -> 0 -> 8
原因:342 + 465 = 807
解題過程
將兩個連結串列當作相同長度的連結串列處理,遇到null值,補0
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode dummyNode = new ListNode(0);
ListNode cur = dummyNode;
ListNode cur1 = l1;
ListNode cur2 = l2;
int carry = 0;
// while迴圈條件:兩個連結串列不同時為null
while(!(cur1 == null && cur2 == null)){
// 如果有節點為null,則補0
int x = cur1 == null ? 0 : cur1.val;
int y = cur2 == null ? 0 : cur2.val;
int sum = x + y + carry;
// 注意 此時進位數的計算要在下面那個賦值操作的前面
carry = sum / 10;
sum = sum % 10;
cur.next = new ListNode(sum);
cur = cur.next;
if(cur1 != null) cur1 = cur1.next;
if(cur2 != null) cur2 = cur2.next;
}
// 如果運算到最後發現還有進位數,說明上一次的操作和是大於10的,存在一個進位1
// 此時無法進入到迴圈進行操作,需要特殊形況處理
if(carry == 1){
cur.next = new ListNode(carry);
}
return dummyNode.next;
}
}
相關文章
- LeetCode——兩數相加LeetCode
- Leetcode兩數相加LeetCode
- 演算法-兩數相加演算法
- 程式設計題-兩數相加程式設計
- LeetCode 2——兩數相加LeetCode
- 【leetcode】【2、兩數相加】LeetCode
- 【LeetCode】2 兩數相加LeetCode
- LeetCode 2.兩數相加LeetCode
- leetcode 2. 兩數相加LeetCode
- JavaScript兩數相加(踩坑)記錄JavaScript
- LeetCode 第二題兩數相加LeetCode
- leetcode之兩數相加解題思路LeetCode
- [LeetCode 刷題] 2. 兩數相加LeetCode
- 神奇補0解決連結串列相加:LeeCode002兩數相加
- LeetCode-兩個排序陣列的中位數LeetCode排序陣列
- 【刷演算法】LeetCode.2-兩數相加演算法LeetCode
- LeetCode2: Add two numbers(兩數相加)LeetCode
- [LeetCode] Add Two Numbers 兩個數字相加LeetCode
- 讓我們一起啃演算法----兩數相加演算法
- LeetCode-2. 兩數相加(連結串列+大數加法模擬)LeetCode
- 簡單演算法題:leetcode-2 兩數相加演算法LeetCode
- 題目:2.兩數相加 解題思路及Java實現Java
- 使用純粹的ABAP位操作實現兩個整數相加
- PHP字串數字相加PHP字串
- 從零打卡leetcode之day 2---兩數相加LeetCode
- ZOJ Martian Addition (20進位制的兩個大數相加)
- 演算法5: LeetCode_單連結串列_兩數相加演算法LeetCode
- LeetCode高頻演算法面試題 - 002 - 兩數相加LeetCode演算法面試題
- Leetcode:2. 兩數相加(C++帶詳細註釋)LeetCodeC++
- leetcode 解題 2.兩數相加-python3 題解LeetCodePython
- (陣列)大數相乘,相加陣列
- leetcode 兩數相加(add two numbers) Python程式設計實現LeetCodePython程式設計
- 阿里開發者招聘節 | 面試題14:如何實現兩金額資料相加(最多小數點兩位)阿里面試題
- 【shell 】求兩個檔案相加的指令碼指令碼
- 用 PHP 在 力扣 刷演算法 [兩數相加]{一天一更}PHP力扣演算法
- 【附加題1】通過程式碼實現兩個超大的數字相加的結果?
- leetcode-陣列中兩元素的最大乘積(Java)LeetCode陣列Java
- php日期相加增加天數,月數的方法PHP