# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
if not head:
return head
dummy = ListNode(0, head)
cur = dummy
print(cur) #先看一下这个链表
while cur.next and cur.next.next:
if cur.next.val == cur.next.next.val:
x = cur.next.val
while cur.next and cur.next.val == x: #这里直接是将所有的重复的链表元素删除
cur.next = cur.next.next
else:
cur = cur.next
print("---------cur的值-----------")
print(cur)
print("---------dummy的值-----------")
print(dummy)
return dummy.next
具体的输出结果如下:
ListNode{val: 0, next: ListNode{val: 1, next: ListNode{val: 2, next: ListNode{val: 3, next: ListNode{val: 3, next: ListNode{val: 4, next: ListNode{val: 4, next: ListNode{val: 5, next: None}}}}}}}}
---------cur的值-----------
ListNode{val: 1, next: ListNode{val: 2, next: ListNode{val: 3, next: ListNode{val: 3, next: ListNode{val: 4, next: ListNode{val: 4, next: ListNode{val: 5, next: None}}}}}}}
---------dummy的值-----------
ListNode{val: 0, next: ListNode{val: 1, next: ListNode{val: 2, next: ListNode{val: 3, next: ListNode{val: 3, next: ListNode{val: 4, next: ListNode{val: 4, next: ListNode{val: 5, next: None}}}}}}}}
---------cur的值-----------
ListNode{val: 2, next: ListNode{val: 3, next: ListNode{val: 3, next: ListNode{val: 4, next: ListNode{val: 4, next: ListNode{val: 5, next: None}}}}}}
---------dummy的值-----------
ListNode{val: 0, next: ListNode{val: 1, next: ListNode{val: 2, next: ListNode{val: 3, next: ListNode{val: 3, next: ListNode{val: 4, next: ListNode{val: 4, next: ListNode{val: 5, next: None}}}}}}}}
---------cur的值-----------
ListNode{val: 2, next: ListNode{val: 4, next: ListNode{val: 4, next: ListNode{val: 5, next: None}}}}
---------dummy的值-----------
ListNode{val: 0, next: ListNode{val: 1, next: ListNode{val: 2, next: ListNode{val: 4, next: ListNode{val: 4, next: ListNode{val: 5, next: None}}}}}}
---------cur的值-----------
ListNode{val: 2, next: ListNode{val: 5, next: None}}
---------dummy的值-----------
ListNode{val: 0, next: ListNode{val: 1, next: ListNode{val: 2, next: ListNode{val: 5, next: None}}}}