【leetcode】82: 删除排序链表中的重复元素 II
题目如下所示:
这个题目我使用字典的方法对其进行了处理,什么意思呢?
就是首先遍历这个链表,然后使用字典统计每一个数字出现的次数,如果出现的次数大于了1次,那么则将其排序后放到我们新创建的链表里,代码如下:
# 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: ListNode) -> ListNode: ls=[] while head: ls.append(head.val) head=head.next #使用字典的特性,对出现的数字进行统计 dicton={} for key in ls: dicton[key]=dicton.get(key,0)+1 new_ls=[] for i in dicton: if dicton[i]>1: pass else: new_ls.append(i) new_ls=sorted(new_ls) node=ListNode(0) ret=node for i in new_ls: node.next=ListNode(i) node=node.next return ret.next
本题目,主要考察了对python字典的使用,如果熟悉这个特性的话,就可以很快做出此题。
速度超过全国50%,内存超过全国79%