女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

算法與數(shù)據(jù)結(jié)構(gòu) ? 來(lái)源:吳師兄學(xué)算法 ? 2023-02-06 10:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、題目描述

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

30b3a59c-a4af-11ed-bfe3-dac502259ad0.png

二、題目解析

由于給定的鏈表是排好序的,因此重復(fù)的元素在鏈表中出現(xiàn)的位置是連續(xù)的,這個(gè)很關(guān)鍵。

因此我們只需要對(duì)鏈表進(jìn)行一次遍歷,就可以刪除重復(fù)的元素。

具體操作如下:

1、設(shè)置一個(gè)指針cur,指向鏈表的頭節(jié)點(diǎn),從鏈表的頭節(jié)點(diǎn)開(kāi)始訪(fǎng)問(wèn)每一個(gè)節(jié)點(diǎn)。

30c821f2-a4af-11ed-bfe3-dac502259ad0.png

2、開(kāi)始不斷遍歷鏈表。

3、在訪(fǎng)問(wèn)過(guò)程中,只要當(dāng)前節(jié)點(diǎn)和當(dāng)前節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)有值,就不斷訪(fǎng)問(wèn)下去

4、當(dāng)前節(jié)點(diǎn)和當(dāng)前節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)有兩種關(guān)系。

5、當(dāng)前節(jié)點(diǎn)和當(dāng)前節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)相同,此時(shí)要?jiǎng)h除重復(fù)元素, 由于鏈表已經(jīng)是排序的,所以去重操作只需要跳過(guò)后面這個(gè)重復(fù)的節(jié)點(diǎn)就行。

6、當(dāng)前節(jié)點(diǎn)和當(dāng)前節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)不相同,那么 cur 這個(gè)節(jié)點(diǎn)可以保留下來(lái),繼續(xù)訪(fǎng)問(wèn)后面的節(jié)點(diǎn)

三、參考代碼

// LeetCode 100題精講:https://mp.weixin.qq.com/s/yznC53g46phq3qF7V4-obA
//作者:程序員吳師兄
//https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/
classSolution{
publicListNodedeleteDuplicates(ListNodehead){
//從鏈表的頭節(jié)點(diǎn)開(kāi)始訪(fǎng)問(wèn)每一個(gè)節(jié)點(diǎn)
ListNodecur=head;

//在訪(fǎng)問(wèn)過(guò)程中,只要當(dāng)前節(jié)點(diǎn)和當(dāng)前節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)有值,就不斷訪(fǎng)問(wèn)下去
while(cur!=null&&cur.next!=null){

//當(dāng)前節(jié)點(diǎn)和當(dāng)前節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)有兩種關(guān)系

//1、當(dāng)前節(jié)點(diǎn)和當(dāng)前節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)相同,此時(shí)要?jiǎng)h除重復(fù)元素
//由于鏈表已經(jīng)是排序的,所以去重操作只需要跳過(guò)后面這個(gè)重復(fù)的節(jié)點(diǎn)就行
if(cur.val==cur.next.val){

//執(zhí)行這個(gè)操作之后,cur.next被跳過(guò)去了
cur.next=cur.next.next;

//2、當(dāng)前節(jié)點(diǎn)和當(dāng)前節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)不相同,那么cur這個(gè)節(jié)點(diǎn)可以保留下來(lái),繼續(xù)訪(fǎng)問(wèn)后面的節(jié)點(diǎn)
}else{
//繼續(xù)訪(fǎng)問(wèn)后面的節(jié)點(diǎn)
cur=cur.next;
}
}

//返回鏈表的頭節(jié)點(diǎn)就是結(jié)果
returnhead;
}
}






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Val
    Val
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    8397
  • Headset
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    10505
  • null
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    4125

原文標(biāo)題:LeetCode 83:刪除排序鏈表中的重復(fù)元素

文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    講解鏈表刪除、修改以及插入

    上期介紹了動(dòng)態(tài)鏈表怎么建立,以及使用循環(huán)的方式怎么輸出整個(gè)鏈表各個(gè)節(jié)點(diǎn)的數(shù)據(jù),這期主要講解 鏈表刪除、修改以及插入 !
    發(fā)表于 01-13 15:25 ?3332次閱讀
    講解<b class='flag-5'>鏈表</b>的<b class='flag-5'>刪除</b>、修改以及插入

    數(shù)據(jù)結(jié)構(gòu):?jiǎn)?b class='flag-5'>鏈表的排序

    給定一個(gè)單鏈表的頭結(jié)點(diǎn)head(該結(jié)點(diǎn)有值),長(zhǎng)度為n的無(wú)序單鏈表,對(duì)其按升序排序后,返回新鏈表。如當(dāng)輸入鏈表 {3,1,4,5,2} 時(shí),
    的頭像 發(fā)表于 11-30 13:56 ?1890次閱讀
    數(shù)據(jù)結(jié)構(gòu):?jiǎn)?b class='flag-5'>鏈表</b>的<b class='flag-5'>排序</b>

    數(shù)據(jù)結(jié)構(gòu):刪除有序鏈表重復(fù)節(jié)點(diǎn)

    給定一個(gè)有序單鏈表(從小到大有序)的頭結(jié)點(diǎn)head(該結(jié)點(diǎn)有值),刪除鏈表重復(fù)元素,使鏈表
    的頭像 發(fā)表于 12-05 15:46 ?1320次閱讀
    數(shù)據(jù)結(jié)構(gòu):<b class='flag-5'>刪除</b>有序<b class='flag-5'>鏈表</b>的<b class='flag-5'>重復(fù)</b>節(jié)點(diǎn)

    在一維字符串?dāng)?shù)組刪除重復(fù)元素

    在一維字符串?dāng)?shù)組刪除重復(fù)元素
    發(fā)表于 05-07 16:50

    python去除列表重復(fù)元素的簡(jiǎn)單操作

    的速度差別  m = ['b','c','d','b','c','a','a']  n = {}.fromkeys(m).keys()  print n  這兩種都有個(gè)缺點(diǎn),祛除重復(fù)元素排序變了
    發(fā)表于 12-21 15:19

    玩轉(zhuǎn)C語(yǔ)言鏈表-鏈表各類(lèi)操作詳解

      鏈表概述  鏈表是一種常見(jiàn)的重要的數(shù)據(jù)結(jié)構(gòu)。它是動(dòng)態(tài)地進(jìn)行存儲(chǔ)分配的一種結(jié)構(gòu)。它可以根據(jù)需要開(kāi)辟內(nèi)存單元。鏈表有一個(gè)“頭指針”變量,以head表示,它存放一個(gè)地址。該地址指向一個(gè)元素
    發(fā)表于 09-18 13:30

    Labview如何實(shí)現(xiàn)相鄰重復(fù)元素合并成一個(gè)

    比如輸入一個(gè)數(shù)組AAAABBBBBCCCCCDDDDAAAA輸出ABCDA,只需要去重相鄰元素,處理后間隔可允許重復(fù)元素出現(xiàn)
    發(fā)表于 10-17 14:22

    OpenHarmony的HDF單鏈表及其迭代器

    范式是:初始化迭代器重復(fù)判斷(集合還有未被訪(fǎng)問(wèn)的元素)獲取下一個(gè)元素的訪(fǎng)問(wèn)方法讀寫(xiě)下一個(gè)元素(也可能是
    發(fā)表于 08-30 10:31

    OpenHarmony的HDF單鏈表及其迭代器

    重復(fù)判斷(集合還有未被訪(fǎng)問(wèn)的元素)獲取下一個(gè)元素的訪(fǎng)問(wèn)方法讀寫(xiě)下一個(gè)元素(也可能是刪除這個(gè)
    發(fā)表于 09-05 11:38

    原創(chuàng):Labview找出數(shù)組重復(fù)元素重復(fù)元素的全部索引

    *附件:查找重復(fù)元素.rar
    發(fā)表于 06-27 09:22

    合并兩個(gè)排序鏈表

    合并兩個(gè)排序鏈表一、題目要求 輸入兩個(gè)單調(diào)遞增的鏈表,輸出兩個(gè)鏈表合成后的鏈表,當(dāng)然我們需要合成后的
    發(fā)表于 01-16 22:02 ?645次閱讀

    如何進(jìn)行單鏈表的查找、插入與刪除的詳細(xì)介紹包括了算法和源程序

    鏈表的查找、插入與刪除。設(shè)計(jì)算法,實(shí)現(xiàn)線(xiàn)性結(jié)構(gòu)上的單鏈表的產(chǎn)生以及元素的查找、插入與刪除。具體實(shí)現(xiàn)要求:
    發(fā)表于 07-16 08:00 ?22次下載
    如何進(jìn)行單<b class='flag-5'>鏈表</b>的查找、插入與<b class='flag-5'>刪除</b>的詳細(xì)介紹包括了算法和源程序

    C++ vector刪除符合條件元素的編程技巧

    C++ vector實(shí)際刪除元素使用的是容器vecrotstd::vector::erase()方法。 C++ std::remove
    的頭像 發(fā)表于 09-20 10:03 ?5660次閱讀

    LeetCode 26:刪除有序數(shù)組重復(fù)項(xiàng)

    在每次遍歷過(guò)程,比較 i 和 j 指向的元素值大小,把大的元素填充到 cur 的位置,填充完畢說(shuō)明那個(gè)元素已經(jīng)放置在它應(yīng)該放置的位置,不需要在管它了,把 cur 向前移動(dòng),同時(shí)把 i
    的頭像 發(fā)表于 12-21 10:34 ?817次閱讀

    java的util包下有哪些類(lèi)

    地插入、刪除和訪(fǎng)問(wèn)元素。 HashSet:無(wú)序的集合,不允許重復(fù)元素。 LinkedHashSet:有序的集合,不允許重復(fù)元素。 TreeSet:有序的集合,根據(jù)
    的頭像 發(fā)表于 11-22 15:04 ?1471次閱讀