diff --git a/3217. Delete Nodes From Linked List Present in Array 1 b/3217. Delete Nodes From Linked List Present in Array 1 new file mode 100644 index 0000000..de7d46c --- /dev/null +++ b/3217. Delete Nodes From Linked List Present in Array 1 @@ -0,0 +1,26 @@ +class Solution { +public: + ListNode* modifiedList(vector& nums, ListNode* head) { + unordered_set s(nums.begin(), nums.end()); + vector vec; + ListNode* curr = head; + + while (curr) { + if (s.count(curr->val) == 0) vec.push_back(curr->val); + curr = curr->next; + } + + if (vec.empty()) return nullptr; + + curr = head; + ListNode* prev = nullptr; + for (int v : vec) { + curr->val = v; + prev = curr; + curr = curr->next; + } + + if (prev) prev->next = nullptr; + return head; + } +};