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
1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * int val; 5 * ListNode next; 6 * ListNode(int x) { val = x; } 7 * } 8 */ 9 public class Solution { 10 public ListNode removeElements(ListNode head, int val) { 11 if(head == null) return head; 12 ListNode ans = new ListNode(-1); 13 ListNode tmp = new ListNode(-1); 14 ans.next = tmp; 15 ListNode cur = head; 16 while(cur != null){ 17 if(cur.val != val) { 18 tmp.next = cur; 19 tmp = tmp.next; 20 } 21 cur = cur.next; 22 } 23 tmp.next = null; 24 return ans.next.next; 25 } 26 }