class Solution {
    public ListNode removeElements(ListNode head, int val) {
        ListNode dummy = new ListNode(0, head);
        ListNode prev = dummy, curr = head;
        while(curr != null) {
            ListNode nxt = curr.next;
            
            if(curr.val == val)
                prev.next = nxt;
            else
                prev = curr;
            
            curr = nxt;
        }
        return dummy.next;
    }
}