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

2021-08-19 18:03:46 字數 592 閱讀 2017

題目

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

思路分析

思路一:使用linkedlist儲存不重複節點,重構鍊錶

分析評價:這個方法是乙個比較直接且容易想到的方法,使用時只要注意一些情況的區分判定,應該可以很快ac。

思路二:完全通過「指標」操作在原煉表上修改,不使用額外儲存鍊錶空間

評價:這個方法空間上優於方法一,時間複雜度都為o(n)

**如下:

public class

deleteduplication

}while(pwork.val == pwork.next.val);

if(pwork.val == phead.val)else

}else

}return phead;

}}

總結

劍指Offer 鍊錶 刪除鍊錶的節點

給定單向鍊錶的頭指標和乙個要刪除的節點的值,定義乙個函式刪除該節點,返回刪除後的鍊錶的頭節點。解題思路 演算法流程 複雜度分析 實現 definition for singly linked list.class listnode def init self,x self.val x self.ne...

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