每周一道算法題(二)

每周一道算法題,今天這個(gè)算法題做完后和大家討論了會(huì),優(yōu)化了下代碼,所以就搞的比較晚了(我能說我不懂鏈表,研究了一上午的鏈表么)

題目是這樣的:

給你兩個(gè)非空鏈表(鏈表不懂的自行百度,簡(jiǎn)單的說就是一個(gè)結(jié)構(gòu)體,里面有數(shù)據(jù)和一個(gè)指針,指針指向下一個(gè)結(jié)構(gòu)體,所以地址可以不連續(xù)),每個(gè)鏈表代表一個(gè)數(shù),把這兩個(gè)數(shù)加起來,返回結(jié)果.結(jié)果也是以鏈表的形式返回(給的數(shù)據(jù)不會(huì)以0開頭,唯一以 0 開頭的情況是數(shù)字0本身,所以不用擔(dān)心前面有多余0的情況).

直接上我的答案

//創(chuàng)建鏈表
struct ListNode* alloc_node(int val){
    struct ListNode* node = (struct ListNode*)malloc(sizeof(struct ListNode));
    node->next = NULL;
    node->val = val;
    return node;
}
//遞歸將兩個(gè)鏈表的數(shù)加起來
void sum_node(struct ListNode* l1, struct ListNode* l2,struct ListNode* l3,int val)  
{  
    l3->val = val;
    if(l1) l3->val += l1->val;
    if(l2) l3->val += l2->val;
 
    if (l3->val >= 10){
        l3->val -= 10;
        val = 1;
    }else {
        val = 0;
    }
    if ((l1 ?l1->next : 0)|| (l2?l2->next:0) || val) {
        l3->next = alloc_node(0);
        sum_node(l1?l1->next:NULL,l2?l2->next:NULL,l3->next,val);
    }
} 
//題目:給兩個(gè)鏈表,要求返回一個(gè)鏈表
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {
    struct ListNode* l3 = alloc_node(0);
    sum_node(l1,l2,l3,0);
    return l3;
}

我是用C寫的遞歸,不用遞歸效率會(huì)更高,不過可讀性差了點(diǎn),然后不得不感嘆C的效率還是遠(yuǎn)勝過swift啊(就這道題來說至少快了3倍,注意是至少),不過還是得學(xué),這兩天用swift仿寫了一個(gè)demo,這周抽時(shí)間再和大家分享下,還是蠻有意思的一個(gè)小demo.

版權(quán)聲明:本文為 Crazy Steven 原創(chuàng)出品,歡迎轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)注明出處!

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

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,366評(píng)論 25 708
  • 轉(zhuǎn)載自:https://github.com/Tim9Liu9/TimLiu-iOS 目錄 UI下拉刷新模糊效果A...
    袁俊亮技術(shù)博客閱讀 12,154評(píng)論 9 105
  • 第一章:《蜘蛛》靜靜地墜在你的窗口,等待從遠(yuǎn)方吹來的海風(fēng)。灑下你仰望天空時(shí)視而無睹的夢(mèng)網(wǎng),一線你似見不見的情絲,我...
    6蟲閱讀 436評(píng)論 0 1
  • 今天,我又懂得了,擁有那些夢(mèng)想和抱負(fù)都相似的團(tuán)隊(duì)是創(chuàng)業(yè)成功的因素之一。只有這樣,才能燃燒自己的熱情。還有,實(shí)現(xiàn)...
    詠詩閱讀 144評(píng)論 0 0
  • 美顏濾鏡效果 GPUImage的介紹 GPUImage 是一個(gè)開源的基于GPU的圖片或視頻的處理框架,其本身內(nèi)置了...
    coderwhy閱讀 1,306評(píng)論 2 7

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