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

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

這篇具有很好參考價(jià)值的文章主要介紹了【Leetcode -21.合并兩個(gè)有序鏈表 -83.刪除排序鏈表中的重復(fù)元素】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

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

題目:將兩個(gè)升序鏈表合并為一個(gè)新的 升序 鏈表并返回。新鏈表是通過拼接給定的兩個(gè)鏈表的所有節(jié)點(diǎn)組成的。

示例 1:
輸入:l1 = [1, 2, 4], l2 = [1, 3, 4]
輸出:[1, 1, 2, 3, 4, 4]

示例 2:
輸入:l1 = [], l2 = []
輸出:[]

示例 3:
輸入:l1 = [], l2 = [0]
輸出:[0]

我們的思路是,先定義兩個(gè)結(jié)構(gòu)體的空指針head和tail,然后先第一次比較list1和list2,誰小就把它的頭節(jié)點(diǎn)賦給head和tail,然后更新list1或者list2;如圖:

【Leetcode -21.合并兩個(gè)有序鏈表 -83.刪除排序鏈表中的重復(fù)元素】
然后進(jìn)入循環(huán)進(jìn)行比較,當(dāng)list1和list2都為非空,就進(jìn)入循環(huán),比較list1和list2誰小,假如list1小就把它放到tail的next,然后更新tail,更新list1;list2也同理;直到其中有一個(gè)空,就把另外一個(gè)非空的直接鏈接上tail的next;如圖:

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

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

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

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

		struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2)
		{
		    //list1和list2其中一個(gè)鏈表為空,返回另外一個(gè)
		    if (list1 == NULL)
		    {
		        return list2;
		    }
		
		    else if (list2 == NULL)
		    {
		        return list1;
		    }
		
		    //定義兩個(gè)結(jié)構(gòu)體的指針
		    struct ListNode* head = NULL;
		    struct ListNode* tail = NULL;
		
		    //首先第一次比較,比較list1和list2誰小,就把這個(gè)頭節(jié)點(diǎn)賦給head和tail
		    if (list1->val < list2->val)
		    {
		        head = tail = list1;
		        list1 = list1->next;
		    }
		
		    else
		    {
		        head = tail = list2;
		        list2 = list2->next;
		    }
		
		    //當(dāng)list1和list2都不為空,循環(huán)繼續(xù)
		    while (list1 && list2)
		    {
		        //開始逐一比較,假如list1小就把它放到tail的next,然后更新tail,更新list1
		        if (list1->val < list2->val)
		        {
		            tail->next = list1;
		            tail = tail->next;
		            list1 = list1->next;
		        }
		
		        //list2小或者等于就把它放到tail的next,然后更新tail,更新list2
		        else
		        {
		            tail->next = list2;
		            tail = tail->next;
		            list2 = list2->next;
		        }
		    }
		
		    //直到其中有一個(gè)空,就把另外一個(gè)非空的直接鏈接上tail的next
		    if (list1 == NULL)
		    {
		        tail->next = list2;
		    }
		    else
		    {
		        tail->next = list1;
		    }
		
		    return head;
		}

Leetcode-83.刪除排序鏈表中的重復(fù)元素

題目:給定一個(gè)已排序的鏈表的頭 head , 刪除所有重復(fù)的元素,使每個(gè)元素只出現(xiàn)一次 。返回已排序的鏈表 。

示例 1:
輸入:head = [1, 1, 2]
輸出:[1, 2]

示例 2:
輸入:head = [1, 1, 2, 3, 3]
輸出:[1, 2, 3]

我們的思路是,定義兩個(gè)指針,尋找重復(fù)的元素,當(dāng)兩個(gè)指針指向的元素相等,就將第一個(gè)先出現(xiàn)的指向第二次出現(xiàn)的next,如下圖:

【Leetcode -21.合并兩個(gè)有序鏈表 -83.刪除排序鏈表中的重復(fù)元素】文章來源地址http://www.zghlxwxcb.cn/news/detail-423071.html

		struct ListNode* deleteDuplicates(struct ListNode* head)
		{
		    //head為空指針,返回空指針
		    if (head == NULL)
		    {
		        return NULL;
		    }
		
		    //定義cur和del指針,cur從頭開始,del從cur的next開始
		    struct ListNode* cur = head, * del = head->next;
		
		    //當(dāng)del不為空
		    while (del)
		    {
		        //當(dāng)cur的val等于del的val,即出現(xiàn)了重復(fù)元素
		        if (cur->val == del->val)
		        {
		            //將del的next賦給cur的next,即cur指向了del的next
		            cur->next = del->next;
		
		            //更新del
		            del = del->next;
		        }
		
		        //當(dāng)cur的val不等于del的val,即不是重復(fù)元素
		        else
		        {
		            //更新cur和del
		            cur = cur->next;
		            del = del->next;
		        }
		    }
		    return head;
		}

到了這里,關(guān)于【Leetcode -21.合并兩個(gè)有序鏈表 -83.刪除排序鏈表中的重復(fù)元素】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(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)文章

  • C語言 | Leetcode C語言題解之第21題合并兩個(gè)有序鏈表
  • 圖靈日記之Leetcode刪除有序數(shù)組中的重復(fù)項(xiàng)&&合并兩個(gè)有序數(shù)組&&移除鏈表元素

    給你一個(gè) 非嚴(yán)格遞增排列 的數(shù)組 nums ,請(qǐng)你 原地 刪除重復(fù)出現(xiàn)的元素,使每個(gè)元素 只出現(xiàn)一次 ,返回刪除后數(shù)組的新長度。元素的 相對(duì)順序 應(yīng)該保持 一致 。然后返回 nums 中唯一元素的個(gè)數(shù)。 考慮 nums 的唯一元素的數(shù)量為 k ,你需要做以下事情確保你的題解可以被通過

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

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

    ?

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

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

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

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

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

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

    2024年02月16日
    瀏覽(30)
  • 合并兩個(gè)有序鏈表——力扣21

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

    題目描述 法一 遞歸

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

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

    簡單 相關(guān)標(biāo)簽 相關(guān)企業(yè) 將兩個(gè)升序鏈表合并為一個(gè)新的 升序 鏈表并返回。新鏈表是通過拼接給定的兩個(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)
  • 第21關(guān):基于鏈表的兩個(gè)遞增有序序列的合并

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

    任務(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的長度n和m,第二行為序列A的n個(gè)元素,第三行為

    2024年02月05日
    瀏覽(28)
  • Leetcode算法遞歸類—合并兩個(gè)有序鏈表

    Leetcode算法遞歸類—合并兩個(gè)有序鏈表

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

    2024年02月13日
    瀏覽(33)
  • LeetCode - #83 刪除排序鏈表中的重復(fù)元素

    LeetCode - #83 刪除排序鏈表中的重復(fù)元素

    我們社區(qū)陸續(xù)會(huì)將顧毅( Netflix 增長黑客,《iOS 面試之道》作者,ACE 職業(yè)健身教練。 )的 Swift 算法題題解整理為文字版以方便大家學(xué)習(xí)與閱讀。 LeetCode 算法到目前我們已經(jīng)更新了 82 期,我們會(huì)保持更新時(shí)間和進(jìn)度( 周一、周三、周五早上 9:00 發(fā)布 ),每期的內(nèi)容不多,

    2024年02月10日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包