刪除鍊錶中重複(數字域)的節點

2022-06-11 17:30:09 字數 1276 閱讀 2916

1

#-*- coding:utf-8 -*-2#

class listnode:3#

def __init__(self, x):4#

self.val = x5#

self.next = none

6"""

沒有三個指標解決不了的問題

"""7

class

solution:

8def deleteduplication(self, phead):#

#最好以原鍊錶指標為輸出9#

write code here

10 ppre =none

11 pcur = phead#

給鍊錶加個指標

12 pnext =none

13while pcur !=none:

14if pcur.next != none and pcur.val == pcur.next.val: #

如果不到尾節點,並且當前指標節點與下一節點數值相等時

15 pnext = pcur.next#

更新next指標

16while pnext.next != none and pnext.next.val == pcur.val: #

當next指標沒到尾節點,且next下一節點數值與當前節點值相等時

17 pnext = pnext.next #

一直更新next指標

18if pcur == phead: #

處理第乙個節點就是重複節點的情況

19 phead = pnext.next #

直接將原鍊錶phead指標後移到一段重複的節點之後

20else

:21 ppre.next = pnext.next #

如果頭結點不是重複節點,則移動pre指標

22 pcur = pnext.next #

更新當前指標到一段重複節點之後節點

23else: #

更新前指標pre到現指標cur上

24 ppre =pcur

25 pcur = pcur.next #

更新當前指標cur

26return phead

LintCode 刪除排序鍊錶中的重複數字 II

題目描述 給定乙個排序鍊錶,刪除所有重複的元素只留下原煉表中沒有重複的元素。樣例 給出 1 2 3 3 4 4 5 null,返回 1 2 5 null 給出 1 1 1 2 3 null,返回 2 3 null 思路分析 ac definition of listnode class listno...

刪除排序鍊錶中的重複數字 II

給定乙個排序鍊錶,刪除所有重複的元素只留下原煉表中沒有重複的元素。您在真實的面試中是否遇到過這個題?yes 樣例給出1 2 3 3 4 4 5 null,返回1 2 5 null 給出1 1 1 2 3 null,返回2 3 null 點題 鍊錶結構改變的時候需要dummy node definit...

鍊錶 刪除排序鍊錶中的重複數字 II 中等

描述 給定乙個排序鍊錶,刪除所有重複的元素只留下原煉表中沒有重複的元素。您在真實的面試中是否遇到過這個題?是 樣例給出 1 2 3 3 4 4 5 null,返回 1 2 5 null 給出 1 1 1 2 3 null,返回 2 3 null 題目鏈結 程式 definition of singl...