题目描述:
给定一个已排序的链表的头 head
, 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。
示例:
思路:
1、去掉边缘情况,即:链表为空的情况。
2、遍历链表找到重复的值设为x。
3、再次遍历链表找到其他值等于x的节点并删除。
4、返回结果。
代码:
class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
if not head:
return head
re = temp = ListNode(None, head)
while temp and temp.next:
if temp.val == temp.next.val:
x = temp.val
while temp.next and temp.next.val == x:
if temp.next.next:
temp.next = temp.next.next
else:
temp.next = None
else:
temp = temp.next
return re.next
执行结果: