LeetCode 203:Remove Linked List Elements

ListNode* removeElements(ListNode* head, int val)
{
    if (head == NULL)
        return head;
    
    ListNode *p = head;
    while (p && p->val==val)
    {
        p = p->next;
    }

    if (p)
    {
        ListNode *q=p;
        ListNode *temp = p->next;
        while (temp)
        {
            if (temp->val != val)
            {
                q->next = temp;
                q=q->next;
            }
            else
            {
                q->next = temp->next;
            }
            temp = temp->next;
        }
    }
    return p;
}

 

posted @ 2015-06-01 10:51  Acode  阅读(123)  评论(0编辑  收藏  举报
您是本站第访问量位访问者!