Leetcode Python - 83. Remove Duplicates from Sorted List

Leetcode #83 - Remove Duplicates from Sorted List

이번에는 특정 챕터별로 문제들을 풀어보겠습니다. linkedlist를 집중적으로 풀어보겠습니다.

리트코드의 문제 83 ‘Remove Duplicates from Sorted List’을 파이썬으로 풀어 보도록 하겠습니다.

discuss를 보도록 하겠습니다.

전체 코드는 아래와 같습니다.

class Solution:
    def deleteDuplicates(self, head: ListNode) -> ListNode:
        if not head:
            return None
        
        dummy = prev = cur = ListNode(val=-101)
        dummy.next = head
        cur = cur.next
        
        while cur:
            if prev.val == cur.val:
                prev.next = cur.next
            else:
                prev = prev.next
            cur = cur.next
            
        return head

시간복잡도는 O(n) : linked list를 한 번 loop

공간복잡도는 O(1) : 상수 개의 새로운 ListNode 선언