演算法程式設計 刪除鍊錶中的重複的結點

2021-08-14 12:21:29 字數 391 閱讀 5061

假設乙個鍊錶是乙個排序鍊錶,中間存在重複的結點,現在要求刪除重複的結點,返回鍊錶的頭部。

例:輸入為[1,1,2,3,3,4,4,4,5,6]。則輸出應該為[2,5,6]。

分析如下:對於乙個排序的鍊錶,對於乙個重複的結點,它與其前或者其後的結點是相同的,因此通過遍歷鍊錶得到重複結點的第乙個結點即可以找到其餘的結點,然後依次刪除。此演算法的時間複雜度為o(n)。

實現**如下:

listnode* deleteduplication(listnode* phead)

if(cur == phead)

else

cur = q->next; //當前的cur節點要刪掉  

}else

}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...