题解:
双指针法,左指针用来记录重复元素之前的节点,右指针用来找到最后一个重复节点,具体如下:
class Solution {
public ListNode deleteDuplicates(ListNode head) {
ListNode dummpy = new ListNode();
dummpy.next=head;
dummpy.val=-1;
ListNode l=dummpy;
ListNode r=head;
while(r!=null && r.next!=null){
if(l.next.val != r.next.val){
l=l.next;
r=r.next;
}else{
while(r.next!=null && l.next.val == r.next.val){
r=r.next;
}
l.next=r.next;
r=r.next;
}
}
return dummpy.next;
}
}