給定一個有序單鏈表(從小到大有序)的頭結點head(該結點有值),刪除鏈表中的重復元素,使鏈表中的所有元素都只出現一次。如當輸入{1,1,2} 時,經刪除后,原鏈表變為 {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結點;不相等的話繼續遍歷結點
第三步:返回頭結點
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
C語言
+關注
關注
180文章
7615瀏覽量
137831 -
代碼
+關注
關注
30文章
4837瀏覽量
69121 -
數據結構
+關注
關注
3文章
573瀏覽量
40239 -
鏈表
+關注
關注
0文章
80瀏覽量
10610
原文標題:數據結構:刪除有序鏈表的重復節點
文章出處:【微信號:嵌入式攻城獅,微信公眾號:嵌入式攻城獅】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
數據結構中最簡單的鏈表
數據結構作為嵌入式工程師必修課程之一,今天,我們就來講一講數據結構中最簡單的鏈表,包含鏈表的初始化、插入和遍歷操作。 鏈表在項目開發中使用的
發表于 06-13 17:40
?406次閱讀
Linux Kernel數據結構:鏈表
Linux Kernel數據結構:鏈表原創 2016年10月20日 22:58:25標簽:LINUX/kernel/鏈表 數據結構數據結構中
發表于 09-25 16:41
收藏 | 程序員面試,你必須知道的8大數據結構
是另一個重要的線性數據結構,乍一看可能有點像數組,但在內存分配、內部結構以及數據插入和刪除的基本操作方面均有所不同。鏈表就像一個
發表于 09-30 09:35
你知道Linux內核數據結構中雙向鏈表的作用?
Linux 內核提供一套雙向鏈表的實現,你可以在 include/linux/list.h 中找到。我們以雙向鏈表著手開始介紹 Linux 內核中的數據結構 ,因為這個是在 Linux 內核中使用最為廣泛的
發表于 05-14 17:27
?1899次閱讀
淺析LeetCode 83刪除排序鏈表中的重復元素
給定一個已排序的鏈表的頭 head , 刪除所有重復的元素,使每個元素只出現一次 。返回 已排序的鏈表 。
鏈表數據結構基本概念
的必要元素。 頭節點: 頭結點是為了操作的統一和方便而設立的,放在第一元素的結點之前,其數據域一般無意義(也可存放鏈表的長度)。 有了頭結點,對在第一元素結點前插入結點和刪除第一結點,
![<b class='flag-5'>鏈表</b><b class='flag-5'>數據結構</b>基本概念](https://file1.elecfans.com/web2/M00/8D/F0/wKgaomTB4ByAN_GfAAAXBQ_0zX8982.jpg)
評論