Given the head of a sorted linked list, delete all duplicates such that each element appears only once. Return the linked list sorted as well.
Input: head = [1,1,2]
Output: [1,2]
Input: head = [1,1,2,3,3]
Output: [1,2,3]
Input
을 head = [1,1,2]
로 해놔서 배열을 입력받는건가? 싶었지만 배열로 표시한 건 예시일 뿐, 사실 head
는 val
과 next
를 프로퍼티로 갖는 노드 객체이다.첫 번 째 head를 예로 들면, head가 1, head.next.next가 2라고 이해하면 될 듯 하다.
current
값을 지정하는게 거의 필수다.current
에 head
를 저장하고, while
문으로 current
와 current.next
가 null
이 되지 않는지 계속 검사한다. (`currentcurrent.val
와 current.next.val
가 같으면 중복된 값이 있다는 얘기이므로, current.next
를 current.next.next
로 바꾼다. 그렇지 않다면 current
에 current.next
를 저장해서 한 칸 옆으로 이동한다.var deleteDuplicates = function(head) {
let current = head;
while(current !== null && current.next !== null){
if(current.val === current.next.val) {
current.next = current.next.next;
} else {
current = current.next;
}
}
return head;
};