題目
劍指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 遞迴 遞迴的方法就像是先判斷第乙個節點和之後的節...