83. Remove Duplicates from Sorted List

来源:互联网 发布:单片机控制24v继电器 编辑:程序博客网 时间:2024/05/22 03:19

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

需要注意的是在第二个while循环里应该限制cur != null,避免nullPoint

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


原创粉丝点击