0203 - Remove Linked List Elements
0203 - 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.
Examples
Input: head = [1,2] Output: [2,1]
Input: head = [] Output: []
Constraints:
The number of nodes in the list is the range [0, 5000]. -5000 <= Node.val <= 5000
Follow up: A linked list can be reversed either iteratively or recursively. Could you implement both?
Java Solution
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode removeElements(ListNode head, int val) {
ListNode result = new ListNode(0);
result.next = head;
ListNode previous = result;
ListNode current = head;
while(current != null) {
if(current.val == val) {
previous.next = current.next;
} else {
previous = current;
}
current = current.next;
}
return result.next;
}
}
Last updated