본문 바로가기
Beakjoon&프로그래머스/Java

[LeetCode/Java] 83. Remove Duplicates from Sorted List

by 현장 2025. 11. 22.

-Code

class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        // 처음 위치 저장
        ListNode answer = new ListNode(-101);
        // 현재 노드 위치 저장
        ListNode cur = answer;

        while(head != null) {
            int now = head.val;
            // 현재 값과 다른 경우 저장
            if (now != cur.val) {
                ListNode addNode = new ListNode(now);
                cur.next = addNode;
                cur = cur.next;
            } 
            head = head.next;
        }
        return answer.next;
    }
}

이렇게 해서 맞았으나 원하는 풀이가 아닌 느낌이어서 다른 풀이를 힌트를 보고 작성해 봤습니다.

class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        // 현재 노드 지정
        ListNode cur = head;

        while(cur != null && cur.next != null) {
            if (cur.val == cur.next.val) {
                // 현재 값과 다음 값이 같은 경우
                cur.next = cur.next.next;
            } else {
                // 다른 값인 경우 다음 노드로 넘어감
                cur = cur.next;
            }
        }
        return head;
    }
}

거의 다 작성하고 자잘한 오류 부분을 수정하는 것에 다른 풀이를 참조했습니다. 이게 맞는 풀이 같으나 노드 클래스를 이용한 문제를 몇 문제 풀어보지 않아서 좀 헤매었습니다.