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

第21關(guān):基于鏈表的兩個(gè)遞增有序序列的合并

這篇具有很好參考價(jià)值的文章主要介紹了第21關(guān):基于鏈表的兩個(gè)遞增有序序列的合并。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

任務(wù)描述

本關(guān)任務(wù):給定兩個(gè)遞增的整數(shù)序列A和B,利用鏈表表示序列A和B,將A和B合并為一個(gè)遞增的有序序列C,序列C不允許有重復(fù)的數(shù)據(jù)。要求空間復(fù)雜度為O(1)。

編程要求

輸入

多組數(shù)據(jù),每組數(shù)據(jù)有三行,第一行為序列A和B的長(zhǎng)度n和m,第二行為序列A的n個(gè)元素,第三行為序列B的m個(gè)元素(元素之間用空格分隔)。n=0且m=0時(shí)輸入結(jié)束。

輸出

對(duì)于每組數(shù)據(jù)輸出一行,為合并后的序列,每個(gè)數(shù)據(jù)之間用空格分隔。

測(cè)試說(shuō)明

平臺(tái)會(huì)對(duì)你編寫的代碼進(jìn)行測(cè)試:

基于鏈表的兩個(gè)遞增有序序列的合并 描述 給定兩個(gè)遞增的整數(shù)序列a和b,利用鏈表表,c++文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-744494.html

?代碼

#include <iostream>
#define OK 1
using namespace std;
typedef struct LNode
{
    int data;
    struct LNode* next;
}LNode, * LinkList;
void CreateList_R(LinkList& L, int n)
{//后插法創(chuàng)建單鏈表
   L=new LNode;
    L->next=NULL;
    int i;
    LinkList p=L;
    for(i=1;i<=n;i++){
        LinkList s;
        s=new LNode;
        scanf("%d",&s->data);
        s->next=NULL;
        p->next=s;
        p=s;
    }
}
int MergeList(LinkList& LA, LinkList& LB)
{//求基于鏈表的兩個(gè)遞增有序序列的合并    存入LA
    LNode *r1 = LA -> next;
    LNode *r2 = LB -> next;
    LNode *r3 = LA;
    
    while (r1 && r2)
    {
        if (r1 -> data < r2 -> data)
        {
            r3 -> next = r1;
            r3 = r1;
            r1 = r1 -> next;
        }
        else if (r1 -> data == r2 -> data)
        {
            r3 -> next = r1;
            r3 = r1;
            r1 = r1 -> next;
            r2 = r2 -> next;
        }
        else
        {
            r3 -> next = r2;
            r3 = r2;
            r2 = r2 -> next;
        }        
    }
    
    if (r1)                                 // 如果還有剩下,則只需要直接連接就好,不需要遍歷
        r3 -> next = r1;
    if (r2) 
        r3 -> next = r2;
    // 也可以用三目運(yùn)算符進(jìn)行騷操作
    // r3 -> next = r1 ? r1 : r2;
    delete LB;


}

到了這里,關(guān)于第21關(guān):基于鏈表的兩個(gè)遞增有序序列的合并的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 21. 合并兩個(gè)有序鏈表

    21. 合并兩個(gè)有序鏈表

    ?

    2024年02月12日
    瀏覽(25)
  • 21.合并兩個(gè)有序鏈表

    21.合并兩個(gè)有序鏈表

    一、思路 二、源碼 創(chuàng)建一個(gè)新鏈表 兩個(gè)鏈表比較,小于等于取下來(lái)尾插 循環(huán)結(jié)束條件為任意一個(gè)鏈表為空 最后將之剩下的鏈表直接尾插

    2024年01月23日
    瀏覽(19)
  • 合并兩個(gè)有序鏈表——力扣21

    合并兩個(gè)有序鏈表——力扣21

    題目描述 法一 遞歸

    2024年02月15日
    瀏覽(24)
  • 力扣21. 合并兩個(gè)有序鏈表

    力扣21. 合并兩個(gè)有序鏈表

    題目 將兩個(gè)升序鏈表合并為一個(gè)新的 升序 鏈表并返回。新鏈表是通過(guò)拼接給定的兩個(gè)鏈表的所有節(jié)點(diǎn)組成的。? 鏈接:21. 合并兩個(gè)有序鏈表 - 力扣(LeetCode) 題解 設(shè)置兩個(gè)指針head和tail,head用來(lái)指向新鏈表的頭結(jié)點(diǎn),tail用來(lái)進(jìn)行新鏈表的尾插。比較兩個(gè)鏈表,取較小的結(jié)

    2024年02月16日
    瀏覽(31)
  • Leetcode 21. 合并兩個(gè)有序鏈表

    Leetcode 21. 合并兩個(gè)有序鏈表

    題目鏈接:https://leetcode.cn/problems/merge-two-sorted-lists/description/ 兩個(gè)鏈表都是升序鏈表,新建一個(gè)鏈表,引入偽頭節(jié)點(diǎn)作為輔助節(jié)點(diǎn),將各節(jié)點(diǎn)添加到偽節(jié)點(diǎn)之后,再用一個(gè)cur節(jié)點(diǎn)指向新鏈表的末尾 遍歷兩個(gè)鏈表,對(duì)比每個(gè)節(jié)點(diǎn)值,將更小的鏈表節(jié)點(diǎn)加入到新鏈表中 如果其中一

    2024年02月13日
    瀏覽(19)
  • LeetCode 21.合并兩個(gè)有序鏈表

    LeetCode 21.合并兩個(gè)有序鏈表

    題目鏈接 ?? LeetCode 21.合并兩個(gè)有序鏈表?? 將兩個(gè)升序鏈表合并為一個(gè)新的 升序 鏈表并返回。新鏈表是通過(guò)拼接給定的兩個(gè)鏈表的所有節(jié)點(diǎn)組成的。 取小的進(jìn)行尾插 ?? 圖解 ?? 取小的進(jìn)行尾插 ?? 圖解 ?? ?? 希望烙鐵們能夠理解歐! 總結(jié)?? 以上就是本題講解的全部?jī)?nèi)

    2024年02月13日
    瀏覽(26)
  • LeetCode21.合并兩個(gè)有序鏈表

    LeetCode21.合并兩個(gè)有序鏈表

    將兩個(gè)升序鏈表合并為一個(gè)新的 升序 鏈表并返回。新鏈表是通過(guò)拼接給定的兩個(gè)鏈表的所有節(jié)點(diǎn)組成的。 示例 : 輸入:l1 = [1,2,4], l2 = [1,3,4] 輸出:[1,1,2,3,4,4] 創(chuàng)建一個(gè)新的鏈表頭節(jié)點(diǎn)(dummyNode)和一個(gè)指針current,用于表示當(dāng)前節(jié)點(diǎn)。 在一個(gè)while循環(huán)中,比較兩個(gè)鏈表的節(jié)

    2024年02月20日
    瀏覽(24)
  • 【Leetcode刷題】鏈表的中間結(jié)點(diǎn)和合并兩個(gè)有序鏈表

    【Leetcode刷題】鏈表的中間結(jié)點(diǎn)和合并兩個(gè)有序鏈表

    生命如同寓言,其價(jià)值不在與長(zhǎng)短,而在與內(nèi)容。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——塞涅卡 目錄 一.鏈表的中間結(jié)點(diǎn) 1.快慢指針 二.合并兩個(gè)有序鏈表? 1.尾插法 給你單鏈表的頭結(jié)點(diǎn) head ,請(qǐng)你找出并返回鏈表的中間結(jié)點(diǎn)。 如果有兩個(gè)中間結(jié)點(diǎn),則返回第二個(gè)中間結(jié)點(diǎn)

    2023年04月17日
    瀏覽(33)
  • 【??算法筆記??】-每日一刷-21、合并兩個(gè)有序鏈表

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

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

    2024年03月12日
    瀏覽(31)
  • 反轉(zhuǎn)鏈表、鏈表的中間結(jié)點(diǎn)、合并兩個(gè)有序鏈表【LeetCode刷題日志】

    反轉(zhuǎn)鏈表、鏈表的中間結(jié)點(diǎn)、合并兩個(gè)有序鏈表【LeetCode刷題日志】

    給你單鏈表的頭節(jié)點(diǎn) head ,請(qǐng)你反轉(zhuǎn)鏈表,并返回反轉(zhuǎn)后的鏈表。 力扣(LeetCode)官網(wǎng) - 全球極客摯愛的技術(shù)成長(zhǎng)平臺(tái) 這里解釋一下三個(gè)指針的作用: n1:記錄上一個(gè)節(jié)點(diǎn),如果是第一個(gè)就指向空 n2:記錄此節(jié)點(diǎn)的位置 n3:記錄下一個(gè)節(jié)點(diǎn)的位置,讓翻轉(zhuǎn)后能找到下一個(gè)節(jié)點(diǎn)

    2024年02月03日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包