PS

Leetcode 83. Remove Duplicates from Sorted List

Bryan Lee 2022. 4. 24. 22:28

문제 이해

- 정렬된 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문만으로 답을 구할 수 있다.