题解 | #删除有序链表中重复的元素-II# 去重重建链表
删除有序链表中重复的元素-II
https://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024
# 去重 + 重建链表
class Solution:
def deleteDuplicates(self , head: ListNode) -> ListNode:
if not head or not head.next:
return head
l1 = []
l2 = []
while head:
l1.append(head.val)
head = head.next
tmp = l1[0]
l2.append(tmp)
for i in range(1, len(l1)):
if l1[i] == tmp:
if l2 and l2[-1] == tmp:
l2.pop()
continue
else:
tmp = l1[i]
l2.append(tmp)
dummy = ListNode(0)
cur = dummy
for i, v in enumerate(l2):
node = ListNode(v)
cur.next = node
cur = cur.next
return dummy.next
