刪除鍊錶中重複的元素

2021-09-22 17:57:28 字數 410 閱讀 8278

題目描述:

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

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

輸出: 1->2->5

分析:從頭結點開始遍歷該鍊錶,如果當前結點的值與下乙個節點的值相同,那麼他們就是重複的節點,都要被刪除。因此為了使刪除重複節點之後的鍊錶仍然相連,我們要把該節點的上乙個節點的next指標指向後面值比當前結點的值大的節點。

要考慮重複節點位於頭部、尾部、中間三種情況。

public listnode deleteduplication(listnode head) else 

}pre.next=null;

return newh.next;

}

刪除鍊錶中重複的元素

include include typedef struct linknode node,linklist linklist表示結構體指標 linklist createlist end int n 尾插法建立鍊錶 void showlist linklist l 輸出鍊錶內容 void delet...

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

分析 思路比較簡單,如果元素相等則指向下乙個。但是要考慮清楚測試用例的覆蓋完備性,最開始筆者就沒考慮到兩個以上重複的元素出現,只考慮了乙個重複的導致錯誤。新增continue語句那裡解決了這個問題。definition for singly linked list.public class list...

刪除鍊錶中的重複元素

昨晚在參加蘭亭集勢的筆試時,看到了這樣乙個題目。大致意思就是給出乙個單鏈表,鍊錶中有重複的元素,需要刪除重複的元素。如 1 2 3 5 4 3 7,刪除重複元素後變成1 2 3 5 4 7。思路其實還蠻簡單 建立三個工作指標p,q,r,然後p 遍歷 全表。p每到乙個結點,q就從這個結點往後遍歷,並與...