题目:
题目链接: https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/
解题思路:
创建一个dummy节点,一个prev临时节点
在遍历时,判断head和head.next节点值是否相同,如果相同,就跳过此值对应的所有节点
如果不相同,将prev.next指向head,继续遍历
代码实现:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
dummy = ListNode(0)
dummy.next = head
prev = dummy
while head and head.next:
flag = True
while flag and head and head.next:
flag = False
while head and head.next and head.val == head.next.val:
head = head.next
flag = True
if flag:
head = head.next
prev.next = head
if not head or not head.next:
break
head = head.next
prev = prev.next
return dummy.next