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
.
思路:就是设置两个指针pre和cur如果cur的值和pre一样,则cur=cur.next
如果cur的值和pre不等是,pre.next=cur;pre=cur;cur=cur.next;
代码如下(已通过leetcode)
public class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head==null) return null;
ListNode p=head;
ListNode pleft=p;
if(p.next==null) return p;
else p=p.next;
while(p!=null) {
if(p.val==pleft.val) {
pleft.next=p.next;
p=p.next;
} else {
pleft=p;
}
}
return head;
}
}