leetcode : 删除链表中的重复元素

131 阅读1分钟

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

public ListNode deleteDuplicates3(ListNode head) {
    ListNode curr = head;
    while (curr != null && curr.next != null) {
        if (curr.val == curr.next.val) {
            curr.next = curr.next.next;
        } else {
            curr = curr.next;
        }

    }
    return head;
}

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

public ListNode deleteDuplicates7(ListNode head) {
    ListNode dummy = new ListNode(-1);
    dummy.next = head;
    ListNode pre = head;
    ListNode curr = pre.next;
    while (curr != null) {
        while (curr.next != null && curr.val == curr.next.val) {
            curr = curr.next;
        }
        if (pre.next == curr) {
            pre = pre.next;
        } else {
            pre.next = curr.next;
        }
        curr = curr.next;
    }
    return dummy.next;
}