题目描述
我的解答
public ListNode deleteDuplicates(ListNode head) {
if(head==null){
return head;
}else {
ListNode res=new ListNode(0,head);
ListNode cur=res;
while (cur.next!=null&&cur.next.next!=null){
if(cur.next.val==cur.next.next.val){
int x=cur.next.val;
while (cur.next!=null&&cur.next.val==x){
cur.next=cur.next.next;
}
}else {
cur=cur.next;
}
}
return res.next;
}
}
需要理解的地方:我们总是维持一个哑节点来对链表进行实际的操作,由于此道题目可能将head全部删除,所以我们将head连接在新new的listcode后面防止这一情况。