国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【題解】合并兩個排序的鏈表

這篇具有很好參考價值的文章主要介紹了【題解】合并兩個排序的鏈表。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

題目鏈接:合并兩個排序的鏈表
解題思路1:迭代

創(chuàng)建一個新的單鏈表,對兩個鏈表進行迭代,每次取較小元素放入新鏈表中,直至某一個鏈表為空,則結(jié)束循環(huán),接著判斷是否有某個鏈表沒有遍歷結(jié)束,再將未遍歷結(jié)束的鏈表部分放入結(jié)果鏈表中。
一般創(chuàng)建單鏈表,都會設(shè)一個虛擬頭結(jié)點,也叫哨兵,因為這樣每一個節(jié)點都有一個前驅(qū)節(jié)點,完美解決了各種判空邏輯的煩惱,所有的節(jié)點將被統(tǒng)一處理。

代碼如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-619088.html

    ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {
        ListNode* vhead = new ListNode(-1);
        ListNode* cur = vhead;
        while(pHead1!=nullptr && pHead2!=nullptr){
            if(pHead1->val <= pHead2->val){
                cur->next = pHead1;
                pHead1 = pHead1->next;
            }else{
                cur->next = pHead2;
                pHead2 = pHead2->next;
            }
            cur = cur->next;
        }
        cur->next = pHead1 ? pHead1 : pHead2;
        return vhead->next;
    }

解題思路2:遞歸
本題進行迭代求解十分方便,此處還是提供遞歸的解法,增強遞歸的理解。

首先,結(jié)束遞歸的條件:某一個鏈表為空,則返回非空鏈表,遞歸結(jié)束
其次:當前遞歸條件,若pHead1->val < =pHead2->val,將較小的pHead1->next與后面merge的頭連接,即pHead1->next = Merge(pHead1->next, pHead2),較大時同理
遞歸的返回值:排好序的鏈表頭

代碼如下:

    ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {
        if(pHead1 == nullptr) return pHead2;
        if(pHead2 == nullptr) return pHead1;
        if(pHead1->val <= pHead2->val){
            pHead1->next = Merge(pHead1->next, pHead2);
            return pHead1;
        }else{
            pHead2->next = Merge(pHead1, pHead2->next);
            return pHead2;
        }

到了這里,關(guān)于【題解】合并兩個排序的鏈表的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Leetcode -21.合并兩個有序鏈表 -83.刪除排序鏈表中的重復(fù)元素】

    【Leetcode -21.合并兩個有序鏈表 -83.刪除排序鏈表中的重復(fù)元素】

    題目:將兩個升序鏈表合并為一個新的 升序 鏈表并返回。新鏈表是通過拼接給定的兩個鏈表的所有節(jié)點組成的。 示例 1: 輸入:l1 = [1, 2, 4], l2 = [1, 3, 4] 輸出:[1, 1, 2, 3, 4, 4] 示例 2: 輸入:l1 = [], l2 = [] 輸出:[] 示例 3: 輸入:l1 = [], l2 = [0] 輸出:[0] 我們的思路是,先定義

    2023年04月24日
    瀏覽(30)
  • Leetcode算法遞歸類—合并兩個有序鏈表

    Leetcode算法遞歸類—合并兩個有序鏈表

    目錄 21.?合并兩個有序鏈表 題解: 代碼: 將兩個升序鏈表合并為一個新的? 升序 ?鏈表并返回。新鏈表是通過拼接給定的兩個鏈表的所有節(jié)點組成的。? 示例 1: 示例 2: 示例 3: 提示: 兩個鏈表的節(jié)點數(shù)目范圍是? [0, 50] -100 = Node.val = 100 l1 ?和? l2 ?均按? 非遞減順序 ?

    2024年02月13日
    瀏覽(33)
  • 138. 復(fù)制帶隨機指針的鏈表(深拷貝)題解

    138. 復(fù)制帶隨機指針的鏈表(深拷貝)題解

    給你一個長度為? n ?的鏈表,每個節(jié)點包含一個額外增加的隨機指針? random ?,該指針可以指向鏈表中的任何節(jié)點或空節(jié)點。 構(gòu)造這個鏈表的? 深拷貝 。?深拷貝應(yīng)該正好由? n ?個? 全新 ?節(jié)點組成,其中每個新節(jié)點的值都設(shè)為其對應(yīng)的原節(jié)點的值。新節(jié)點的? next ?指針和

    2024年02月13日
    瀏覽(90)
  • 【??算法筆記??】-每日一刷-21、合并兩個有序鏈表

    【??算法筆記??】-每日一刷-21、合并兩個有序鏈表

    簡單 相關(guān)標簽 相關(guān)企業(yè) 將兩個升序鏈表合并為一個新的 升序 鏈表并返回。新鏈表是通過拼接給定的兩個鏈表的所有節(jié)點組成的。 示例 1: 示例 2: 示例 3: 提示: 兩個鏈表的節(jié)點數(shù)目范圍是 [0, 50] -100 = Node.val = 100 l1 和 l2 均按 非遞減順序 排列 拉拉鏈法 兩個鏈表就相當于

    2024年03月12日
    瀏覽(31)
  • 面試算法78:合并排序鏈表

    面試算法78:合并排序鏈表

    輸入k個排序的鏈表,請將它們合并成一個排序的鏈表。 用k個指針分別指向這k個鏈表的頭節(jié)點,每次從這k個節(jié)點中選取值最小的節(jié)點。然后將指向值最小的節(jié)點的指針向后移動一步,再比較k個指針指向的節(jié)點并選取值最小的節(jié)點。重復(fù)這個過程,直到所有節(jié)點都被選取出來

    2024年02月03日
    瀏覽(23)
  • 【大廠算法面試沖刺班】day2:合并兩個有序鏈表

    將兩個升序鏈表合并為一個新的 升序 鏈表并返回。新鏈表是通過拼接給定的兩個鏈表的所有節(jié)點組成的。 根據(jù)以上規(guī)律考慮本題目: 終止條件:當兩個鏈表都為空時,表示我們對鏈表已合并完成。 如何遞歸:我們判斷 l1 和 l2 頭結(jié)點哪個更小,然后較小結(jié)點的 next 指針指向

    2024年01月23日
    瀏覽(16)
  • 合并 k 個升序的鏈表

    C++——優(yōu)先級隊列(priority_queue)_c++priority_queue__好好學(xué)習(xí)的博客-CSDN博客 那么這道題就可以用小頂堆 分治的思想,歸并排序的思想

    2024年02月10日
    瀏覽(18)
  • 【LeetCode】數(shù)據(jù)結(jié)構(gòu)題解(9)[復(fù)制帶隨機指針的鏈表]

    【LeetCode】數(shù)據(jù)結(jié)構(gòu)題解(9)[復(fù)制帶隨機指針的鏈表]

    所屬專欄:玩轉(zhuǎn)數(shù)據(jù)結(jié)構(gòu)題型?? ?? 博主首頁:初陽785?? ?? 代碼托管:chuyang785?? ?? 感謝大家的支持,您的點贊和關(guān)注是對我最大的支持?。?!?? ?? 博主也會更加的努力,創(chuàng)作出更優(yōu)質(zhì)的博文!!?? ?? 關(guān)注我,關(guān)注我,關(guān)注我,重要的事情說三遍?。。。?!

    2024年02月11日
    瀏覽(98)
  • 【算法入門&鏈表】【模板】鏈表|反轉(zhuǎn)鏈表|合并排序鏈表|刪除鏈表的節(jié)點

    【算法入門&鏈表】【模板】鏈表|反轉(zhuǎn)鏈表|合并排序鏈表|刪除鏈表的節(jié)點

    ?作者簡介:熱愛后端語言的大學(xué)生,CSDN內(nèi)容合伙人 ?精品專欄:C++面向?qū)ο???系列專欄:算法百煉成神 本專欄收錄的均為??途W(wǎng)的算法題目,內(nèi)含鏈表、雙指針、遞歸、動態(tài)規(guī)劃、基本數(shù)據(jù)結(jié)構(gòu)等算法思想的具體運用。??途W(wǎng)不僅有大量的經(jīng)典算法題目,也有大廠的面

    2024年02月17日
    瀏覽(20)
  • 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計題目——鏈表綜合算法設(shè)計、帶頭雙向循環(huán)鏈表、插入、顯示、刪除、修改、排序

    數(shù)據(jù)結(jié)構(gòu)課程設(shè)計題目——鏈表綜合算法設(shè)計、帶頭雙向循環(huán)鏈表、插入、顯示、刪除、修改、排序

    ??課程設(shè)計題目1–鏈表綜合算法設(shè)計 ??一、設(shè)計內(nèi)容 ??已知簡單的人事信息系統(tǒng)中職工記錄包含職工編號(no)、職工姓名(name)、部門名稱(depname)、職稱(title)和工資數(shù)(salary)等信息(可以增加其他信息),設(shè)計并完成一個簡單的人事信息管理系統(tǒng),要求完成但不

    2024年02月08日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包