83. 删除排序链表中的重复元素

存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。

返回同样按升序排列的结果链表。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        if (head == null) {
            return head;
        }

        ListNode cur = head.next, pre = head, next;

        while (cur != null) {

            /**
             * 当前元素与前一个元素相等
             */
            while (cur != null && pre.val == cur.val) {
                cur = cur.next;
            }

            pre.next = cur;
            pre = cur;
            cur = cur != null ? cur.next : null;
        }

        return head;
    }
}

class ListNode {
    int val;
    ListNode next;

    ListNode() {
    }

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

    ListNode(int val, ListNode next) {
        this.val = val;
        this.next = next;
    }
}
上一篇:闭锁CountDownLatch与栅栏CyclicBarrier


下一篇:第3届83行代码大赛第2关赛题官方解析