Hello everyone , I'm Qi Guanjie (qí guān jié ), stay 【 Qi Guanjie 】 official account 、CSDN、GitHub、B Share some technical blog posts on the website and other platforms , It mainly includes front-end development 、python The backend development 、 Applet development 、 Data structure and algorithm 、docker、Linux Common operation and maintenance 、NLP And other related technical blog , Time flies , Future period , come on. ~
If you love bloggers, you can focus on the bloggers' official account. 【 Qi Guanjie 】(qí guān jié), The articles inside are more complete and updated faster . If you need to find a blogger, you can leave a message at the official account. , I will reply to the message as soon as possible .
This article was originally written as 【 Qi Guanjie 】(qí guān jié ), Please support the original , Some platforms have been stealing blog articles maliciously !!! All articles please pay attention to WeChat official account 【 Qi Guanjie 】.
Given the header of a sorted linked list head
, Delete all nodes with duplicate numbers in the original linked list , Leave only different numbers . return Sorted linked list .
Example 1:
Input :head = [1,2,3,3,4,4,5]
Output :[1,2,5]
Example 2:
Input :head = [1,1,1,2,3]
Output :[2,3]
Tips :
[0, 300]
Inside -100 <= Node.val <= 100
Double pointer , Find nodes without duplicates
# 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:
th = ListNode(-1,head)
p,q = th,th
while q:
q = q.next
nc = 0
while q and q.next and q.next.val == q.val:
q = q.next
nc += 1
if nc == 0:
p.next = q
p = p.next
return th.next