刪除鍊錶中重複的結點

2021-09-10 17:43:52 字數 669 閱讀 8753

題目描述

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。 例如,鍊錶1->2->3->3->4->4->5 處理後為 1->2->5

思路來自網上:

設定 三個指標,pre,h,post。分兩種情況考慮:

當 h->val != post->val 的時候,三個指標均向後移動;

當 h->val == post->val 的時候,不斷向後移動post,直到 不等,

此時,pre不動,將其next設為post。h,post 和第一種情況類似,向後移動。

注意,如果pre扔處在頭節點的前一位置,那麼,要將頭結點 設為 post。因為最後返回的是 頭結點。

/*

struct listnode

};*/

class

solution

else

if(pre-

>next == phead)

pre-

>next = post;

}

h = post;

post =post-

>next;

}return phead;}}

;

刪除鍊錶中重複的結點

題目描述 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5。刪除鍊錶中重複的結點 author 過路的守望 public class duplicationnode 新建乙個節點指向頭結點 li...

刪除鍊錶中重複的結點

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 解法一 遞迴 public class listnode public class solution if phead.next.val phe...

刪除鍊錶中重複的結點

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 題目分析 刪除鍊錶中的結點要比較當前結點是否與前面結點和後面結點相同,只有兩個都不同的結點才保留。用pre儲存前乙個節點,cur儲存當前結點,c...