給定一個有序單鏈表(從小到大有序)的頭結點head(該結點有值),刪除鏈表中的重復元素,使鏈表中的所有元素都只出現一次。如當輸入{1,1,2} 時,經刪除后,原鏈表變?yōu)?{1,2},對應的輸出為 {1,2}。
代碼實現
C語言代碼:
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; }
圖解代碼
第一步:定義一個新結點,將其指向頭結點
第二步:當前結點的值與當前結點的下一個結點數值做比較:如果數值相等,直接將當前結點指向下一個結點的next結點;不相等的話繼續(xù)遍歷結點
第三步:返回頭結點
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。
舉報投訴
-
C語言
+關注
關注
180文章
7633瀏覽量
142104 -
代碼
+關注
關注
30文章
4905瀏覽量
70954 -
數據結構
+關注
關注
3文章
573瀏覽量
40794 -
鏈表
+關注
關注
0文章
80瀏覽量
10856
原文標題:數據結構:刪除有序鏈表的重復節(jié)點
文章出處:【微信號:嵌入式攻城獅,微信公眾號:嵌入式攻城獅】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
熱點推薦
講解鏈表的刪除、修改以及插入
上期介紹了動態(tài)鏈表怎么建立,以及使用循環(huán)的方式怎么輸出整個鏈表中各個節(jié)點的數據,這期主要講解 鏈表的刪除
發(fā)表于 01-13 15:25
?3362次閱讀

數據結構中最簡單的鏈表
數據結構作為嵌入式工程師必修課程之一,今天,我們就來講一講數據結構中最簡單的鏈表,包含鏈表的初始化、插入和遍歷操作。 鏈表在項目開發(fā)中使用的
發(fā)表于 06-13 17:40
?530次閱讀
Linux Kernel數據結構:鏈表
Linux Kernel數據結構:鏈表原創(chuàng) 2016年10月20日 22:58:25標簽:LINUX/kernel/鏈表 數據結構數據結構中
發(fā)表于 09-25 16:41
收藏 | 程序員面試,你必須知道的8大數據結構
是另一個重要的線性數據結構,乍一看可能有點像數組,但在內存分配、內部結構以及數據插入和刪除的基本操作方面均有所不同。鏈表就像一個
發(fā)表于 09-30 09:35
數據結構試題庫,含答案
;next=s;C. s->next=p->next;p=s;7. 設線性鏈表中的節(jié)點的結構為(data, next),若想刪除節(jié)點p的直接
發(fā)表于 03-07 16:19
C語言基礎教程之鏈表
(一)什么是鏈表? 鏈表是一種常見的基礎數據結構,是一種線性表,是一種在物理存儲單元上非連續(xù)非順序的存儲結構。 鏈表有一系列
發(fā)表于 11-16 10:22
?2308次閱讀
你知道Linux內核數據結構中雙向鏈表的作用?
Linux 內核提供一套雙向鏈表的實現,你可以在 include/linux/list.h 中找到。我們以雙向鏈表著手開始介紹 Linux 內核中的數據結構 ,因為這個是在 Linux 內核中使用最為廣泛的
發(fā)表于 05-14 17:27
?2008次閱讀
淺析LeetCode 83刪除排序鏈表中的重復元素
給定一個已排序的鏈表的頭 head , 刪除所有重復的元素,使每個元素只出現一次 。返回 已排序的鏈表 。
鏈表數據結構基本概念
的必要元素。 頭節(jié)點: 頭結點是為了操作的統一和方便而設立的,放在第一元素的結點之前,其數據域一般無意義(也可存放鏈表的長度)。 有了頭結點,對在第一元素結點前插入結點和刪除第一結點,

Linux內核中使用的數據結構
包含的元素可以動態(tài)創(chuàng)建并插入和刪除。鏈表的每個元素都是離散存放的,因此不需要占用連續(xù)的內存。鏈表通常由若干節(jié)點組成,每個節(jié)點的

評論