题解 | #删除有序链表中重复的元素-II#
删除有序链表中重复的元素-II
http://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024
# def __init__(self, x):
# self.val = x
# self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param head ListNode类
# @return ListNode类
#
class Solution:
def deleteDuplicates(self , head: ListNode) -> ListNode:
# write code here
if head == None or head.next == None:
return head
pre = ListNode(0) #添加头节点
pre.next = head
temp = pre #因为如果值相同,需要删除当前节点,因此需要记录前一个节点
while head.next != None:
if head.next.val == head.val:
head.next = head.next.next #下一个值相同,连接下一个节点
if head.next == None: #下一个节点为空,删除当前节点
temp.next = head.next
elif head.next.val != head.val: #下一个节点值不相同,删除当前节点,开始下一个节点判断
temp.next = head.next
head = head.next
else: #值不同,直接判断下一个节点
head = head.next
temp = temp.next
return pre.next