力扣 203 移除链表元素

目录

  • 1.解题思路
  • 2.代码实现

1.解题思路

利用快慢指针,如果快指针此时的值为val则将此时满指针的next指向快指针的next利用循环,其次,要特意判断链表的头部为val的情况以及链表为空的情况.

2.代码实现

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

}
    struct ListNode*p=head;
    struct ListNode*prev=NULL;
    while(p)
    {
       if(p->val!=val)
       {   prev=p;
           p=p->next;
       }
      else
      {
        prev->next=p->next;
        p=p->next;
      }
    }
    return head;

}

结尾:今天的分享到此结束,喜欢的朋友如果感觉有帮助可以点赞三连支持,咱们共同进步!

你可能感兴趣的:(leetcode,链表,算法)