Published:
Updated:


SolutionPermalink

class ListNode {
    int val;
    ListNode next;

    public ListNode() {
    }

    public ListNode(int val) {
        this.val = val;
    }

    public ListNode(int val, ListNode next) {
        this.val = val;
        this.next = next;
    }
}

public class RemoveDuplicatesFromSortedList {
    // The list is guaranteed to be sorted in ascending order.
    public static ListNode deleteDuplicates(ListNode head) {
        ListNode currentNode = head;
        // ํ˜„์žฌ ๋…ธ๋“œ์™€ ๋‹ค์Œ ๋…ธ๋“œ๊ฐ€ null์ด ์•„๋‹ ๋•Œ
        while (currentNode != null && currentNode.next != null) {
            if (currentNode.val == currentNode.next.val) { // ๊ฐ™์„ ๊ฒฝ์šฐ
                currentNode.next = currentNode.next.next; // ํ˜„์žฌ ๋…ธ๋“œ๊ฐ€ ๋‹ค๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•จ
            } else { // ๊ฐ™์ง€ ์•Š์„ ๊ฒฝ์šฐ
                currentNode = currentNode.next; // ๋‹ค์Œ ๋…ธ๋“œ๋กœ ์ด๋™
            }
        }
        return head; // pointer
    }
}

Leave a comment