싱글 링크드 리스트에서 현재 노드 cur 를 삭제하려면 다음 두 단계로 수행할 수 있음:
1. cur 의 이전 노드 prev 와 next 노드를 찾는다:
2. prev를 cur의 next 노드로 연결:
첫 번째 단계에서는, 우리는 prev와 next 를 알아내야 함. 그 다음은 cur reference를 사용하여 쉽게 찾을 수 있음.
그러나, 우리는 평균 O(N) 시간이 걸리는 prev를 찾기 위해 헤드 노드에서 링크드리스드를 순회해야 한다.
여기서 N은 링크드리스드의 길이이다. 따라서 노드를 삭제하는 데 걸리는 시간은 O(N)이 된다.
포인터를 저장하기 위해 일정한 공간만 필요하기 때문에 공간 복잡도는 O(1)이다.
https://leetcode.com/explore/learn/card/linked-list/209/singly-linked-list/1289/
'Algorithms' 카테고리의 다른 글
싱글 링크드리스트 추가하기 (0) | 2022.08.09 |
---|---|
동적 계획법 (0) | 2020.07.20 |
Palindrome(회문) 알고리즘 (0) | 2020.07.14 |
1290. Convert Binary Number in a Linked List to Integer(비트연산) (0) | 2020.04.26 |
leetcode 1281번 문제풀이 (0) | 2020.03.26 |