82. Remove Duplicates from Sorted List II

Posted on May 13, 2025

Solution

Implementation

class Solution {
    fun deleteDuplicates(head: ListNode?): ListNode? {
        val dummy = ListNode(0)
        dummy.next = head
        var (prev, current) = dummy to head

        while (current?.next != null) {
            if (current.`val` == current.next.`val`) {
                current = current.next
                while (prev?.next?.`val` == current?.`val`) current = current?.next
                prev.next = current
            } else {
                prev = prev.next
                current = current.next
            }
        }

        return dummy.next
    }
}