C 之刪除鍊錶的重複元素

2021-10-09 07:59:33 字數 984 閱讀 3751

面試題 02.01. 移除重複節點

編寫**,移除未排序鍊錶中的重複節點。保留最開始出現的節點。

示例1:

輸入:[1, 2, 3, 3, 2, 1]

輸出:[1, 2, 3]

示例2:

輸入:[1, 1, 1, 1, 2]

輸出:[1, 2]

因為會保留乙個重複結點,所以在遍歷鍊錶的時候,我們就要判斷這個節點是不是乙個重複結點,這個時候set和unorder_set就比較合適了。

/**

* definition for singly-linked list.

* struct listnode

* };

*/class

solution

return head;}}

;

82. 刪除排序鍊錶中的重複元素 ii

給定乙個排序鍊錶,刪除所有含有重複數字的節點,只保留原始鍊錶中 沒有重複出現 的數字。

示例 1:

輸入: 1->2->3->3->4->4->5

輸出: 1->2->5

示例 2:

輸入: 1->1->1->2->3 輸出: 2->3

/**

* definition for singly-linked list.

* struct listnode

* };

*/class

solution

fast=fast-

>next;

}//在鍊錶結尾的處理

if(slow-

>next!=fast) slow-

>next=fast-

>next;

return dummy-

>next;}}

;

鍊錶刪除重複元素1,刪除重複元素2,

刪除排序鍊錶中的重複元素 給定乙個排序鍊錶,刪除所有重複的元素,使得每個元素只出現一次。示例 1 輸入 1 1 2 輸出 1 2 示例 2 輸入 1 1 2 3 3 輸出 1 2 3 思路 很簡單。先將兩個指標進行操作,start,end然後判斷end是否等於空即可 definition for s...

較 鍊錶刪除重複元素

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 這道題首先要注意,重複元素乙個不留,且開頭元素可能重複,所以如果我們直接在原煉表上操作會比較麻煩。這裡採用選擇非重複節點構建新鍊錶的方式進行刪除...

如何刪除鍊錶的重複元素

看到這個題目,最容易想到的就是遍歷鍊錶,把遍歷到的值存到hashtable中,在遍歷過程中,若當前的值在hashtable中存在,則說明這個資料是重複的,因此可以刪除。public void deleteduplecate node head tmp tmp.next 以上方法優點 時間複雜度低,缺...