This commit is contained in:
Sainnhe Park 2022-12-01 21:22:53 +08:00
parent 8485bba8c0
commit 9d2a8bccfe
2 changed files with 36 additions and 0 deletions

View File

@ -0,0 +1,17 @@
#ifndef S0203_REMOVE_LINKED_LIST_ELEMENTS_HPP
#define S0203_REMOVE_LINKED_LIST_ELEMENTS_HPP
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 S0203 {
public:
ListNode* removeElements(ListNode* head, int val);
};
#endif

View File

@ -0,0 +1,19 @@
#include "s0203_remove_linked_list_elements.hpp"
ListNode* S0203::removeElements(ListNode* head, int val) {
ListNode dummy = ListNode(0, head);
ListNode* ptr = &dummy;
while (ptr->next != nullptr) {
if (ptr->next->val == val) {
if (ptr->next->next == nullptr) {
ptr->next = nullptr;
break;
} else {
ptr->next = ptr->next->next;
}
} else {
ptr = ptr->next;
}
}
return dummy.next;
}