LeetCode 82. Remove Duplicates from Sorted List II

来源:互联网 发布:淘宝商品推广平台 编辑:程序博客网 时间:2024/06/05 16:18

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

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

java

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */class Solution {    public ListNode deleteDuplicates(ListNode head) {        if (head == null || head.next == null) {            return head;        }        ListNode dummy = new ListNode(-1);        dummy.next = head;        ListNode prev = dummy;        ListNode curr = head;        while (curr != null && curr.next != null) {            if (curr.val == curr.next.val) {                int val = curr.val;                while (curr != null && curr.val == val) {                    curr = curr.next;                }                prev.next = curr;            } else {                prev = curr;                curr = curr.next;            }        }        return dummy.next;    }}


原创粉丝点击