DEV Community

Harsh Rajpal
Harsh Rajpal

Posted on

203. Remove Linked List Elements

Given the head of a linked list and an integer val, remove all the nodes of the linked list that has Node.val == val, and return the new head.

Example 1:

Input: head = [1,2,6,3,4,5,6], val = 6
Output: [1,2,3,4,5]
Example 2:

Input: **head = [], val = 1
**Output:
[]

Example 3:

Input: head = [7,7,7,7], val = 7
Output: []

Constraints:

The number of nodes in the list is in the range [0, 104].
1 <= Node.val <= 50
0 <= val <= 50

Solution:

class Solution {
    public ListNode removeElements(ListNode head, int val) {
       if (head == null)
            return null;

        ListNode curr = head;
        ListNode prev = null;

        while (curr != null)
        {
            if (curr.val == val)
            {
                if (prev != null)
                    prev.next = curr.next;
                else
                    head = head.next;
            }
            else
            {
                prev = curr;
            }
            curr = curr.next;
        }
        return head;
    }
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)