資料結構 刪除有序鍊錶中重複的結點

2021-09-26 23:07:46 字數 933 閱讀 2717

在乙個有序的鍊錶中,刪除重複的節點

1.定義兩個節點 p,q和乙個前驅節點 pre

2.令p 指向head,q指向head.next ,pre作為p的前驅

3.當q 指向的不為空時

1)當p 所指向的值與q不相等時,pre 指向p,p指向q,q指向q.next 

2)當p 所指向的值與q相等時, pre 和 p 不動,q 向後一直移動,直到p 所指向的值與q不相等時,繼續執行1)操作。

4. 執行完3操作後,要將pre和p值向後移動,即p指向q所在位置,q繼續向後移動

5.當q所指向的為空時,結束迴圈,刪除有序鍊錶中的重複節點完成。

public class linkedlist else

node.next=q;

p = q;

if(q != null)}}

return node.next;

}}class node

資料結構 java語言實現刪除鍊錶中重複結點

目錄 1 題目描述 2 解題思路 3 實現 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 首先,定義乙個虛擬結點node,其後儲存單鏈表中不重複的結點,最後返回node.next即可。那麼問...

刪除有序鍊錶中重複的結點

比如 將鍊錶1,2,2,3,4,4,5,6,7,7,7中重複的結點刪除,則結果變為 1,3,5,6 方法為 從鍊錶的頭結點開始,用兩個引用p1,p2來代表相比較的前後兩個結點 如果p1的值不等於p2的值,則p1與p2都往後移動一位 如果p1的值等於p2的值,則讓p1的位置不變,讓p2往後移動,直到p...

刪除有序鍊錶中的重複節點

這道題是我在筆試 極 技 公司遇到的程式設計題,當時有點緊張,一直有點bug,現在改好了,寫一篇部落格記錄下 題目 給定乙個鍊錶 1 1 2 3 5 返回鍊錶 2 3 5 給定乙個鍊錶 1 1 2 2 5 返回鍊錶 5 給定乙個鍊錶 1 2 3 3 5 返回鍊錶 1 2 5 給定乙個鍊錶 1 2 2...