Remove Duplicates from Sorted List - LeetCode
[0, 300]
.100 <= Node.val <= 100
주어진 연결 리스트는 오름차순 정렬된 상태이므로 한번의 탐색으로 중복된 값을 삭제해주면 된다 → Sol1
탐색
커서를 이동하면서 다음값과 현재 값이 같은 경우 다음 값 삭제
/**
* Example:
* var li = ListNode(5)
* var v = li.`val`
* Definition for singly-linked list.
* class ListNode(var `val`: Int) {
* var next: ListNode? = null
* }
*/
class Solution {
fun deleteDuplicates(head: ListNode?): ListNode? {
var cursor = head
while (cursor != null && cursor!!.next != null) {
if (cursor!!.`val` == cursor!!.next!!.`val`) { // 중복된 값
cursor!!.next = cursor!!.next!!.next // 중복된 노드 삭제
} else {
cursor = cursor!!.next
}
}
return head
}
}
시간 복잡도: 연결 리스트 탐색 = n