문제 이해
- 정렬된 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 (1) | 2022.04.24 | 
| 자바(Java) 알고리즘 문제 풀이 - 결혼식 (1) | 2022.04.24 | 
| 자바(Java) 알고리즘 문제 풀이 - 씨름선수 (1) | 2022.04.21 | 
| 자바(Java) 알고리즘 문제 풀이 - 회의실 배정 (2) | 2022.04.20 |