【LeetCode】203. 移除链表元素

删除链表中等于给定值 val 的所有节点。

解题思路:为了方便操作,新建一个前继节点,比较该节点next的val与给定值的大小

需要注意的是当操作pdelete->next = pdelete->next->next后,pdelete不需要移动位置,因为它的后继变化了。

ListNode* Solution::removeElements(ListNode* head, int val)
{
    ListNode *phead = new ListNode(0);
    
    if(head == NULL)
    {
        return NULL;
    }
    phead->next = head;
    ListNode *pdelete = phead;
    while(pdelete->next != NULL)
    {
        if(pdelete->next->val == val)
        {
            pdelete->next = pdelete->next->next;
            //pdelete = pdelete->next;
        }
        else
        {
            pdelete = pdelete->next;
        }
    }
    return phead->next;
}

猜你喜欢

转载自blog.csdn.net/syc233588377/article/details/85675477