Leetcode brushing record-83. Eliminar elementos duplicados en la lista vinculada ordenada

Inserte la descripción de la imagen aquí
La idea es establecer dos punteros,
donde uno apunta al último número que apareció primero (inicializado en Ninguno) y el
otro apunta al número investigado actualmente.
Al principio, esto es Ninguno, y cur comienza desde el primer elemento,
cuando este es Ninguno Hacemos este punto al elemento señalado por cur.
Después de eso, si el valor del elemento señalado por cur es igual al valor del elemento señalado por esto, dejamos que el siguiente de este se refiera al
siguiente de cur. esto es cur

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def deleteDuplicates(self, head: ListNode) -> ListNode:
        this = None#存放上一个要保留的元素
        cur = head
        while cur != None:
            if this == None:
                this = cur
            else:#有
                if cur.val != this.val:
                    this.next = cur
                    this = cur
                elif cur.val == this.val:
                    this.next = cur.next
            cur = cur.next
        return head
59 artículos originales publicados · Me gustaron 14 · Visitantes más de 20,000

Supongo que te gusta

Origin blog.csdn.net/weixin_41545780/article/details/105481253
Recomendado
Clasificación