移除链表元素
题目链接
解题思路:
删除链表中的指定节点
1.首先进行特判,如果链表为空,直接返回
2.判断头节点是否为删除的节点,如果是,则删除头节点
3.遍历整条链表,如果碰见待删除的节点,直接删除即可
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* removeElements(ListNode* head, int val) {if(!head){return head;}while(head!=nullptr && head->val == val){head = head->next;}ListNode *cur = head;while(cur!=nullptr &&cur->next != nullptr){if(cur->next->val == val){cur->next=cur->next->next;}else{cur = cur->next;}}return head;}
};