1class Solution {2public:3ListNode *removeElements(ListNode *head, int val) {4ListNode *prv, *cur, *temp;5while (head && head->val == val) {6cur = head;7head = head->next;8delete (cur);9}10if (head == NULL) return head;11prv = head;12cur = head->next;13while (cur) {14if (cur->val == val) {15temp = cur;16prv->next = cur->next;17cur = cur->next;18delete (temp);19} else {20prv = cur;21cur = cur->next;22}23}24return head;25}26};