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

2021-10-06 17:28:38 字數 585 閱讀 9655

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

本題難度在於如何處理頭結點的刪除和如何刪除兩個或多個節點。

1.頭結點的刪除可以通過再建立乙個節點head作為頭結點,而原來的頭結點phead則作為第乙個節點。

2.刪除兩個或多個節點。可以通過雙指標來處理這個問題。第乙個指標start指向重複元素前的位置,第二個指標last 指向重複元素後的位置,所以接下來start->next=last即可,最後返回head->next即可。

listnode*

deleteduplication

(listnode* phead)

last=last-

>next ;

start-

>next =last;

}return head-

>next ;

}

注:程式執行遇到_block_type_is_valid(phead->nblockuse的問題,這是指標空間已被釋放,然後在重複釋放時出錯。

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