203.移除链表元素 (Easy)*
题目描述*
删除链表中等于给定值 val 的所有结点。
示例*
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
代码*
首先要去掉链表头部值为 val 的部分,然后再去除后面的。
class Solution {
public:
ListNode* removeElements(ListNode* head, int val) {
if(head == nullptr) {
return head;
}
while(head != nullptr && head->val == val) {
head = head->next;
}
if(head == nullptr || head->next == nullptr) {
return head;
}
ListNode *res = head;
while(head != nullptr && head->next != nullptr) {
if(head->next->val == val){
head->next = head->next->next;
}else {
head = head->next;
if(head == nullptr){
return head;
}
}
}
return res;
}
};
最后更新: July 23, 2022