2. Add Two Numbers

題目描述

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

You may assume the two numbers do not contain any leading zero, except the number 0 itself.

輸入與輸出

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        
    }
};

樣例

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4), Output: 7 -> 0 -> 8

題解與分析

模擬題目所述操作即可琉历。

需要注意的有如下幾處:最高位可能有進(jìn)位,直接操作鏈表節(jié)點(diǎn)需要使用指針的指針(即ListNode**二驰,也可設(shè)置一個(gè)空鏈表頭)避归。

C++ 代碼如下:

class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode *node; // 鏈表頭部
        ListNode **tail = &node; // 指向鏈表尾部的地址
        int num = 0, c = 0; // num表示當(dāng)前數(shù)字惧浴,c表示進(jìn)位信息
        while (l1 != NULL && l2 != NULL) {
            num = l1->val + l2->val + c;
            l1 = l1->next;
            l2 = l2->next;
            c = num / 10;
            num = num % 10;
            *tail = new ListNode(num);
            tail = &((*tail)->next);
        }
        while (l1 != NULL) {
            num = l1->val + c;
            l1 = l1->next;
            c = num / 10;
            num = num % 10;
            *tail = new ListNode(num);
            tail = &((*tail)->next);
        }
        while (l2 != NULL) {
            num = l2->val + c;
            l2 = l2->next;
            c = num / 10;
            num = num % 10;
            *tail = new ListNode(num);
            tail = &((*tail)->next);
        }
        // 最高位可能產(chǎn)生進(jìn)位
        if (c != 0) {
            *tail = new ListNode(c);
        }
        return node;
    }
};

該解法的時(shí)間復(fù)雜度為 O(L) (其中 L 是兩條鏈表中最長(zhǎng)者的長(zhǎng)度)基协。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末遏弱,一起剝皮案震驚了整個(gè)濱河市浪默,隨后出現(xiàn)的幾起案子授舟,更是在濱河造成了極大的恐慌救恨,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,378評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件释树,死亡現(xiàn)場(chǎng)離奇詭異肠槽,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)奢啥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門秸仙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人桩盲,你說(shuō)我怎么就攤上這事寂纪。” “怎么了赌结?”我有些...
    開封第一講書人閱讀 168,983評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵捞蛋,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我柬姚,道長(zhǎng)拟杉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,938評(píng)論 1 299
  • 正文 為了忘掉前任量承,我火速辦了婚禮搬设,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘撕捍。我一直安慰自己拿穴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,955評(píng)論 6 398
  • 文/花漫 我一把揭開白布卦洽。 她就那樣靜靜地躺著贞言,像睡著了一般。 火紅的嫁衣襯著肌膚如雪阀蒂。 梳的紋絲不亂的頭發(fā)上该窗,一...
    開封第一講書人閱讀 52,549評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音蚤霞,去河邊找鬼酗失。 笑死,一個(gè)胖子當(dāng)著我的面吹牛昧绣,可吹牛的內(nèi)容都是我干的规肴。 我是一名探鬼主播,決...
    沈念sama閱讀 41,063評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼夜畴,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼拖刃!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起贪绘,我...
    開封第一講書人閱讀 39,991評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤兑牡,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后税灌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體均函,經(jīng)...
    沈念sama閱讀 46,522評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,604評(píng)論 3 342
  • 正文 我和宋清朗相戀三年菱涤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了苞也。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,742評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡粘秆,死狀恐怖如迟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情攻走,我是刑警寧澤氓涣,帶...
    沈念sama閱讀 36,413評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站陋气,受9級(jí)特大地震影響劳吠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜巩趁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,094評(píng)論 3 335
  • 文/蒙蒙 一痒玩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧议慰,春花似錦蠢古、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至炉菲,卻和暖如春堕战,著一層夾襖步出監(jiān)牢的瞬間坤溃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工嘱丢, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留薪介,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,159評(píng)論 3 378
  • 正文 我出身青樓越驻,卻偏偏與公主長(zhǎng)得像汁政,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子缀旁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,747評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容