劍指offer 刪除鍊錶中重複的結點

2021-10-07 16:36:26 字數 923 閱讀 3700

題目

劍指offer:刪除鍊錶中重複的結點

題目描述:在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。

例如,鍊錶1->2->3->3->4->4->5 處理後為 1->2->5

思路找到重複的就刪除

c++實現(待優化)

/*

struct listnode

};*/

class

solution

phead = cur;

cur = cur-

>next;

return

deleteduplication

(phead);}

listnode *last = phead;

//記錄上乙個不重複的節點

while

(cur!=

null

&& cur-

>next!=

null

)else}}

last-

>next = cur;

return phead;}}

;

總結

通過程式後,去看別人優秀的**,發現還有不少可以優化的地方,比如,可以先自己設乙個listnode* pre,然後pre->next指向phead即可,這樣的話,就可以去掉上面說的可以優化的地方了,將其直接與下面的while合在一起處理,最後返回pre->next即可。從而使得**更為簡介與高效。

反思通過這次程式設計實現,我發現了自己對之前學過的鍊錶知識又忘記了…本來挺簡單的一道題,但由於對鍊錶的不熟悉,還是做了蠻久的。而且,這道題也有一些細節需要注意,從而實現優化。希望自己能記住這次程式設計實現學到的知識,不要又忘記了。。。

題目鏈結

牛客網程式設計題——劍指offer:刪除鍊錶中重複的結點

劍指offer 鍊錶 刪除鍊錶中的重複節點

題目在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 思路分析 思路一 使用linkedlist儲存不重複節點,重構鍊錶 分析評價 這個方法是乙個比較直接且容易想到的方法,使用時只要注意一些情況...

劍指offer 刪除鍊錶中重複的結點(鍊錶)

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 class solution listnode ans newlistnode 1 ans next phead listnode link a...

劍指Offer 鍊錶 刪除鍊錶中重複的結點

題目 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5。注意該鍊錶為排序鍊錶,重複的節點不保留哦!public class listnode 1 遞迴 遞迴的方法就像是先判斷第乙個節點和之後的節...