Loading

[链表]链表去重

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

class Solution:
    def removeDuplicateNodes(self, head: ListNode) -> ListNode:


        dummy = ListNode(-1)
        tail = dummy

        occur = set()

        cur = head
        while cur:
            if cur.val not in occur:
                occur.add(cur.val)
                tail.next = cur
                cur = cur.next
                tail = tail.next
                tail.next = None
            else:
                cur = cur.next
        
        return dummy.next

class Solution:
    def deleteDuplicates(self, head: Optional[ListNode]) -> Optional[ListNode]:
        dummy = ListNode(-1)
        tail = dummy

        cur = head
        while cur and cur.next:
            if cur and cur.next and cur.val != cur.next.val:
                tail.next = cur
                cur = cur.next
                tail = tail.next
                tail.next = None
            else:
                t = cur.val
                while cur and cur.val == t:
                    cur = cur.next
        
        if cur:
            tail.next = cur

        return dummy.next
posted @ 2024-09-28 11:28  Duancf  阅读(20)  评论(0)    收藏  举报