【每日刷题】Day7

时间:2024-04-09 19:54:02

//思路:遍历。使用指针pf1放头节点,遍历链表,如果pf1->->val等于题目所给val,则直接将当前next指向next->next,跳过val所在节点

//需要注意的是,需要考虑链表中的val都是题目所给val已经空链表的情况

struct ListNode* removeElements(struct ListNode* head, int val)

{

    while(head!=NULL&&(head->val)==val)

    {

        head = head->next;

    }

    if(!head)

    {

        return head;

    }

    struct ListNode* pf1 = head;

    while(pf1->next)

    {

        if((pf1->next->val)==val)

        {

            pf1->next = pf1->next->next;

        }

        else

        {

            pf1 = pf1->next;

        }

    }

    return head;

}