把這道題拎出來完全是因為在刷鏈表啊,刷完這個刷遞歸歧焦,感興趣的持續(xù)關注我哦移斩。
1.題目
原題
給定一個排序鏈表,刪除所有重復的元素绢馍,使得每個元素只出現(xiàn)一次向瓷。這個問題和之前的區(qū)別就是這個鏈表是無序的。
例子
輸入:[1, 2, 3, 3, 2, 1]
輸出:[1, 2, 3]
2.解析
這個題因為是無需的只能用列表或者集合統(tǒng)計每次出現(xiàn)的值了舰涌,判斷當前節(jié)點值再不在里邊猖任,然后更新這個鏈表指向。
3.python代碼
class Solution:
def removeDuplicateNodes(self, head: ListNode) -> ListNode:
if head is None or head.next is None:
return head
new = ListNode(0)
new.next = head
p = new
cur = head
valset = set()
while cur:
if cur.val in valset:
p.next = cur.next
else:
valset.add(cur.val)
p = p.next
cur = cur.next
return new.next