Remove all elements from a linked list of integers that have value val.
Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5
Credits:
Special thanks to @mithmatt for adding this problem and creating all test cases.
Subscribe to see which companies asked this question
Tags LinkedList --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @param {number} val
* @return {ListNode}
*/
var removeElements = function (head, val) {
if (head === null) {
return head;
}
// ********** If we need to remove the first element
if (head.val === val) {
return removeElements(head.next, val);
}
var node = head;
var prev = null;
while (node) {
if (node.val === val) {
prev.next = node.next;
node = prev.next;
} else {
prev = node;
node = node.next;
}
}
return head;
};