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

2021-07-10 12:38:59 字數 544 閱讀 7002

題目:

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

思路:

因為重複結點不保留且有可能從頭結點開始重複,所以應當新建乙個結點位於頭結點的之前,從新建的結點開始遍歷。因為要將重複的結點全部刪除,所以要設定乙個結點pnode指向當前結點,然後再乙個結點prenode指向當前結點的前乙個結點,用於記錄刪除重複結點之前的位置,將prenode指向刪除重複結點之後的結點,即實現了刪除重複結點的功能。

class

listnode

}class

solution

prenode.next = pnode;//將重複結點的前乙個結點指向重複結點的後乙個結點,即刪除重複結點

}else

}return prehead.next;//返回頭結點,注意不能直接返回phead,因為有可能從頭結點就開始重複

}}

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