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; }
结尾:今天的分享到此结束,喜欢的朋友如果感觉有帮助可以点赞三连支持,咱们共同进步!