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
.
思路:就是一个普通的链表操作,设置两个指针,pleft和p,当pleft.val=p.val时,pleft不动,p向后移一位。否则p,pleft都向后移一位.
代码如下(已通过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;
}
}