刪除鍊錶中重複的結點

2021-09-26 03:03:19 字數 682 閱讀 9442

題目描述

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。

例如,鍊錶1->2->3->3->4->4->5 處理後為 1->2->5

def deleteduplication(self, phead):

# write code here

if not phead:

return phead

#為了防止頭結點是重複的,定義乙個新結點指向頭結點

temp = listnode(0)

temp.next = phead

pre, nex = temp, phead

while nex:

if nex.next and nex.next.val == nex.val:

#如果出現了和當前節點相同的值的時候,當前節點前移一位

while nex.next and nex.next.val == nex.val:

nex = nex.next

pre.next = nex.next#只是指向,並沒有動pre,相當於刪除

nex = nex.next

else:

pre = pre.next

nex = nex.next

return temp.next

刪除鍊錶中重複的結點

題目描述 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶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...