[leetcode] Remove Duplicates from Sorted List

Given a sorted linked list, delete all duplicates such that each element appear only once.

For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.

https://oj.leetcode.com/problems/remove-duplicates-from-sorted-list/

思路:基本的链表操作,保存pre的指针,cur与pre相同就删除cur。

public class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        if (head == null || head.next == null)
            return head;

        ListNode pre = head;
        ListNode cur = head.next;
        while (cur != null) {
            if (cur.val == pre.val) {
                pre.next = cur.next;
                cur = pre.next;
            } else {
                pre = cur;
                cur = cur.next;
            }

        }

        return head;
    }

    public static void main(String[] args) {
        ListNode head = new ListNode(1);
        head.next = new ListNode(1);
        head.next.next = new ListNode(2);

        ListUtils.printList(head);
        new Solution().deleteDuplicates(head);
        ListUtils.printList(head);
    }

}
View Code
原文地址:https://www.cnblogs.com/jdflyfly/p/3815857.html