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移动;如果不相等,同时移动。
public class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head==null||head.next==null)//先判空
return head;
ListNode pre=head;//前指针
ListNode cur=head.next;//后指针
while(cur!=null)//后指针不为空
{
if(cur.val==pre.val)//相等,移动后指针,让pre.next=cur
{
pre.next=cur.next;
cur=cur.next;
}
else//不相等,同时移动
{
pre=cur;
cur=cur.next;
}
}
return head;//最后直接返回head
}
}