1. 题目

【LeetCode】 82.删除排序链表中的重复元素II_leetcode

2. 分析

可以人为插入一个点,用于简化分析。

3. 代码

# 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: Optional[ListNode]) -> Optional[ListNode]:
start = ListNode(val=-1,next=None) # 新建一个头节点
pre = start
flag = 0
while(head and head.next):
if ( head.next and head.val != head.next.val):
pre.next = head
pre = head
head = head.next # 往下走一个
pre.next = None
while(head.next and head.val == head.next.val):
head = head.next
flag = 1
if flag:
head = head.next # 还得再往下走
flag = 0
if head:
pre.next = head
return start.next