算法-leetcode-鏈表-兩數(shù)相加

題目:2. 兩數(shù)相加

題目描述:

給出兩個(gè) 非空 的鏈表用來表示兩個(gè)非負(fù)的整數(shù)。其中,它們各自的位數(shù)是按照 逆序 的方式存儲(chǔ)的,并且它們的每個(gè)節(jié)點(diǎn)只能存儲(chǔ) 一位 數(shù)字。

如果,我們將這兩個(gè)數(shù)相加起來,則會(huì)返回一個(gè)新的鏈表來表示它們的和。

您可以假設(shè)除了數(shù)字 0 之外,這兩個(gè)數(shù)都不會(huì)以 0 開頭。

示例 1:

輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
輸出:7 -> 0 -> 8
原因:342 + 465 = 807
解題思路
  1. l1 鏈表 和 l2鏈表 同步 往后 相同位置 節(jié)點(diǎn)的值 相加
  2. 當(dāng)前位兩個(gè)節(jié)點(diǎn)的值 計(jì)算后
    1. 將個(gè)位數(shù)的值 保存到結(jié)果鏈表節(jié)點(diǎn)中
    2. 進(jìn)位值保存 加入下次計(jì)算
  3. 全部計(jì)算完后 保存結(jié)果的鏈表 返回即可
源碼
  • java:
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        // 結(jié)果 存放的 鏈表
        ListNode temp = new ListNode(0);
        ListNode curr = temp;
        ListNode p = l1;
        ListNode q = l2;
        int carry = 0;
        
        while(p != null || q != null || carry > 0){
            //  l1當(dāng)前節(jié)點(diǎn) 的值
            int x = p != null ? p.val : 0;
            // l2當(dāng)前節(jié)點(diǎn)的值
            int y = q != null ? q.val : 0;
            // 此處加的 時(shí)候 注意加上 上一次計(jì)算的 進(jìn)位
            int sum = x + y + carry;
            // 取進(jìn)位數(shù)
            carry = sum / 10;
            
            curr.next = new ListNode(sum % 10);
            
            curr = curr.next;
            
            p = p == null ? null : p.next;
            
            q = q == null ? null : q.next;
            
        }
        
        return temp.next;
    }
}

水平有限,如有問題,請各路大神指正,虛心接納

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 題目:給出兩個(gè) 非空 的鏈表用來表示兩個(gè)非負(fù)的整數(shù)。其中,它們各自的位數(shù)是按照 逆序 的方式存儲(chǔ)的,并且它們的每個(gè)...
    anloney閱讀 1,166評(píng)論 1 0
  • LeetCode-鏈表 鏈表(Linked List)是一種常見的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),是一種線性表,但是并不會(huì)按線性的順...
    raincoffee閱讀 1,332評(píng)論 0 6
  • 搞懂單鏈表常見面試題 Hello 繼上次的 搞懂基本排序算法,這個(gè)一星期,我總結(jié)了,我所學(xué)習(xí)和思考的單鏈表基礎(chǔ)知識(shí)...
    醒著的碼者閱讀 4,732評(píng)論 1 45
  • 2. 兩數(shù)相加 Description 給出兩個(gè)非空的鏈表用來表示兩個(gè)非負(fù)的整數(shù)。其中,它們各自的位數(shù)是按照逆序的...
    狂吃不胖溫同學(xué)閱讀 1,257評(píng)論 0 1
  • 2. 兩數(shù)相加 給出兩個(gè) 非空 的鏈表用來表示兩個(gè)非負(fù)的整數(shù)。其中,它們各自的位數(shù)是按照 逆序 的方式存儲(chǔ)的,并且...
    阿啦琳閱讀 139評(píng)論 0 0

友情鏈接更多精彩內(nèi)容