Remove Duplicates from Sorted List II

来源:互联网 发布:网络维护常见问题 编辑:程序博客网 时间:2024/06/05 14:15

基本功

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

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.



0 0
原创粉丝点击