ListNode* deleteDuplication(ListNode* pHead)
{
    if(!pHead)
        return NULL;
    ListNode * f = new ListNode(-1);
    f->next = pHead;
    ListNode * p = f;
    while(p)
    {
        ListNode * q = p->next;
        if(q)
        {
            ListNode * r = q->next;
            if(r&&r->val == q->val)
            {
                while(r&&r->val==q->val)
                {
                    r = r->next;
                }
                p->next = r;
                continue;
            }
        }
        p->next = q;
        p = p->next;
    }
    return f->next;
}