문제 이해
- 정렬된 Linked List에서 중복된 원소를 제거하라
해결 전략
- ListNode list를 만들고, head의 주소를 저장합니다.
- list를 순회하면서, 만약 해당 위치의 값(val)과 다음 위치의 값(val)이 같다면,
다음 위치의 노드를 제거해줍니다.
- 다음 위치의 노드가 존재하지 않는다면 while문을 탈출합니다.
- head를 반환합니다.
구현
public class Solution {
public ListNode deleteDuplicates(ListNode head) {
ListNode list = head;
while(list != null){
if(list.next == null){
break;
}
if(list.val == list.next.val){
list.next = list.next.next;
}else{
list = list.next;
}
}
return head;
}
}
피드백
- 별도의 자료구조(ex) 배열)를 쓰지 않고, while문만으로 답을 구할 수 있다.
'PS' 카테고리의 다른 글
Leetcode 2233. Maximum Product After K Increments (0) | 2022.04.24 |
---|---|
Leetcode 2211. Count Collisions on a Road (0) | 2022.04.24 |
자바(Java) 알고리즘 문제 풀이 - 결혼식 (1) | 2022.04.24 |
자바(Java) 알고리즘 문제 풀이 - 씨름선수 (0) | 2022.04.21 |
자바(Java) 알고리즘 문제 풀이 - 회의실 배정 (2) | 2022.04.20 |