定义两个指针,一个是当前指针cur,一个是下一个结点指针t,每次先遍历t,遇到重复的值要跳过,然后让cur的next为t,cur再变成cur.next。最后还要让指针指向空,这样才是一个完整去重链表。
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public ListNode deleteDuplication(ListNode pHead)
{
if(pHead==null)return null;
ListNode cur=new ListNode(0);
ListNode t=pHead;
ListNode res=cur;
while(t!=null){
if(t.next!=null&&t.val==t.next.val){
int temp=t.val;
while(t!=null&&t.val==temp){
t=t.next;
}
}
else{
cur.next=t;
cur=cur.next;
t=t.next;
}
}
if(t==null){
cur.next=t;
cur=cur.next;
}
return res.next;
}
}