- 关键是如何确定新的头节点。可以先创建一个头节点,最后返回头节点的next域
public ListNode deleteDuplication(ListNode pHead)
{
if(pHead==null)
{
return null;
}
ListNode newHead = new ListNode(0);
if(pHead.next==null)
{
newHead.next = pHead;
}
ListNode p = pHead;
ListNode pre = newHead;
while(p!=null)
{
ListNode q = p.next;
if(q==null)
{
break;
}
if(p.val==q.val)
{
while(q.next!=null&&q.val==q.next.val)
{
q = q.next;
}
p = q.next;
pre.next = p;
}
else{
pre.next = p;
pre = p;
p = p.next;
}
}
return newHead.next;
}