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

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

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

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

嵌入式攻城獅 ? 來(lái)源:嵌入式攻城獅 ? 2023-12-05 15:46 ? 次閱讀

給定一個(gè)有序單鏈表(從小到大有序)的頭結(jié)點(diǎn)head(該結(jié)點(diǎn)有值),刪除鏈表中的重復(fù)元素,使鏈表中的所有元素都只出現(xiàn)一次。如當(dāng)輸入{1,1,2} 時(shí),經(jīng)刪除后,原鏈表變?yōu)?{1,2},對(duì)應(yīng)的輸出為 {1,2}。

代碼實(shí)現(xiàn)

C語(yǔ)言代碼:

structListNode*deleteDuplicates(structListNode*head){
if(head==NULL)
returnhead;

structListNode*p;
p=head;
while(p->next!=NULL)
{
if(p->val==p->next->val)
p->next=p->next->next;
else
p=p->next;
}

returnhead;
}

圖解代碼

第一步:定義一個(gè)新結(jié)點(diǎn),將其指向頭結(jié)點(diǎn)

421334ee-9340-11ee-939d-92fbcf53809c.png

第二步:當(dāng)前結(jié)點(diǎn)的值與當(dāng)前結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)數(shù)值做比較:如果數(shù)值相等,直接將當(dāng)前結(jié)點(diǎn)指向下一個(gè)結(jié)點(diǎn)的next結(jié)點(diǎn);不相等的話繼續(xù)遍歷結(jié)點(diǎn)

422b930e-9340-11ee-939d-92fbcf53809c.png422f5c14-9340-11ee-939d-92fbcf53809c.png

第三步:返回頭結(jié)點(diǎn)

42562c18-9340-11ee-939d-92fbcf53809c.png

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

    關(guān)注

    180

    文章

    7581

    瀏覽量

    135541
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4694

    瀏覽量

    68075
  • 數(shù)據(jù)結(jié)構(gòu)

    關(guān)注

    3

    文章

    569

    瀏覽量

    40063
  • 鏈表
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    10532

原文標(biāo)題:數(shù)據(jù)結(jié)構(gòu):刪除有序鏈表的重復(fù)節(jié)點(diǎn)

文章出處:【微信號(hào):嵌入式攻城獅,微信公眾號(hào):嵌入式攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    C語(yǔ)言實(shí)現(xiàn)單鏈表-增刪改查

    鏈表是由一連串節(jié)點(diǎn)組成的數(shù)據(jù)結(jié)構(gòu),每個(gè)節(jié)點(diǎn)包含一個(gè)數(shù)據(jù)值和一個(gè)指向下一個(gè)節(jié)點(diǎn)的指針。
    的頭像 發(fā)表于 05-25 15:05 ?1125次閱讀
    C語(yǔ)言實(shí)現(xiàn)單<b class='flag-5'>鏈表</b>-增刪改查

    數(shù)據(jù)結(jié)構(gòu)中最簡(jiǎn)單的鏈表

    數(shù)據(jù)結(jié)構(gòu)作為嵌入式工程師必修課程之一,今天,我們就來(lái)講一講數(shù)據(jù)結(jié)構(gòu)中最簡(jiǎn)單的鏈表,包含鏈表的初始化、插入和遍歷操作。 鏈表在項(xiàng)目開發(fā)中使用的
    發(fā)表于 06-13 17:40 ?335次閱讀

    Linux內(nèi)核的鏈表操作

    Linux內(nèi)核的鏈表操作本文詳細(xì)分析了 2.6.x 內(nèi)核中鏈表結(jié)構(gòu)的實(shí)現(xiàn),并通過(guò)實(shí)例對(duì)每個(gè)鏈表操作接口進(jìn)行了詳盡的講解。一、 鏈表
    發(fā)表于 08-29 11:13

    Linux Kernel數(shù)據(jù)結(jié)構(gòu):鏈表

    Linux Kernel數(shù)據(jù)結(jié)構(gòu)鏈表原創(chuàng) 2016年10月20日 22:58:25標(biāo)簽:LINUX/kernel/鏈表 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)
    發(fā)表于 09-25 16:41

    收藏 | 程序員面試,你必須知道的8大數(shù)據(jù)結(jié)構(gòu)

    是另一個(gè)重要的線性數(shù)據(jù)結(jié)構(gòu),乍一看可能有點(diǎn)像數(shù)組,但在內(nèi)存分配、內(nèi)部結(jié)構(gòu)以及數(shù)據(jù)插入和刪除的基本操作方面均有所不同。鏈表就像一個(gè)
    發(fā)表于 09-30 09:35

    數(shù)據(jù)結(jié)構(gòu)試題庫(kù),含答案

    ;next=s;C. s->next=p->next;p=s;7. 設(shè)線性鏈表中的節(jié)點(diǎn)結(jié)構(gòu)為(data, next),若想刪除節(jié)點(diǎn)p的直接
    發(fā)表于 03-07 16:19

    數(shù)據(jù)結(jié)構(gòu)鏈表的基本操作

    嵌入式學(xué)習(xí)基礎(chǔ)-數(shù)據(jù)結(jié)構(gòu)鏈表的基本操作鏈表節(jié)點(diǎn)采用結(jié)構(gòu)體的方式進(jìn)行定義,下面是最基礎(chǔ)的定義只有一個(gè)數(shù)據(jù)
    發(fā)表于 12-22 08:05

    Linux內(nèi)核中的數(shù)據(jù)結(jié)構(gòu)的一點(diǎn)認(rèn)識(shí)

    成員,那么到時(shí)候鏈表中沒(méi)有任何數(shù)據(jù),這樣的鏈表有什么用呢?其實(shí)這就是內(nèi)核鏈表設(shè)計(jì)的巧妙之處,因?yàn)樵谡麄€(gè)內(nèi)核中需要使用鏈表來(lái)存放的
    發(fā)表于 04-20 16:42

    算法與數(shù)據(jù)結(jié)構(gòu)——雙向鏈表

    第三章為算法與數(shù)據(jù)結(jié)構(gòu),本文為3.3 雙向鏈表。
    的頭像 發(fā)表于 09-19 17:56 ?7231次閱讀
    算法與<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>——雙向<b class='flag-5'>鏈表</b>

    你知道Linux內(nèi)核數(shù)據(jù)結(jié)構(gòu)中雙向鏈表的作用?

    Linux 內(nèi)核提供一套雙向鏈表的實(shí)現(xiàn),你可以在 include/linux/list.h 中找到。我們以雙向鏈表著手開始介紹 Linux 內(nèi)核中的數(shù)據(jù)結(jié)構(gòu) ,因?yàn)檫@個(gè)是在 Linux 內(nèi)核中使用最為廣泛的
    發(fā)表于 05-14 17:27 ?1852次閱讀

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

    給定一個(gè)已排序的鏈表的頭 head , 刪除所有重復(fù)的元素,使每個(gè)元素只出現(xiàn)一次 。返回 已排序的鏈表 。
    的頭像 發(fā)表于 02-06 10:25 ?675次閱讀

    Linux內(nèi)核的鏈表數(shù)據(jù)結(jié)構(gòu)

    Linux內(nèi)核實(shí)現(xiàn)了自己的鏈表數(shù)據(jù)結(jié)構(gòu),它的設(shè)計(jì)與傳統(tǒng)的方式不同,非常巧妙也很通用。
    的頭像 發(fā)表于 03-24 11:34 ?792次閱讀
    Linux內(nèi)核的<b class='flag-5'>鏈表</b><b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>

    鏈表數(shù)據(jù)結(jié)構(gòu)基本概念

    的必要元素。 頭節(jié)點(diǎn): 頭結(jié)點(diǎn)是為了操作的統(tǒng)一和方便而設(shè)立的,放在第一元素的結(jié)點(diǎn)之前,其數(shù)據(jù)域一般無(wú)意義(也可存放鏈表的長(zhǎng)度)。 有了頭結(jié)點(diǎn),對(duì)在第一元素結(jié)點(diǎn)前插入結(jié)點(diǎn)和刪除第一結(jié)點(diǎn),
    的頭像 發(fā)表于 07-27 11:14 ?752次閱讀
    <b class='flag-5'>鏈表</b><b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>基本概念

    Linux內(nèi)核中使用的數(shù)據(jù)結(jié)構(gòu)

    包含的元素可以動(dòng)態(tài)創(chuàng)建并插入和刪除。鏈表的每個(gè)元素都是離散存放的,因此不需要占用連續(xù)的內(nèi)存。鏈表通常由若干節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)
    的頭像 發(fā)表于 11-09 14:24 ?412次閱讀
    Linux內(nèi)核中使用的<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>