C# || Remove Linked List Elements – How To Remove All Target Linked List Elements Using C#

The following is a module with functions which demonstrates how to remove all target linked list elements using C#.

1. Remove Elements – Problem Statement

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: [] ```

2. Remove Elements – Solution

The following is a solution which demonstrates how to remove all target linked list elements.

``` 2. Remove Elements - Solution C# // ============================================================================ // Author: Kenneth Perkins // Date: Apr 2, 2022 // Taken From: http://programmingnotes.org/ // File: Solution.cs // Description: Demonstrates how to remove all target linked list elements // ============================================================================ /** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int val=0, ListNode next=null) { * this.val = val; * this.next = next; * } * } */ public class Solution { public ListNode RemoveElements(ListNode head, int val) { var ptr = head; // Loop through data checking to see if the next node equals the target value while (ptr != null && ptr.next != null) { // If the next node value is the target value, set the next node // to point to the one after it if (ptr.next.val == val) { ptr.next = ptr.next.next; } else { // Advance to the next node ptr = ptr.next; } } // If the head equals the target value, advance to the next if (head != null && head.val == val) { head = head.next; } return head; } }// http://programmingnotes.org/ 12345678910111213141516171819202122232425262728293031323334353637383940414243 // ============================================================================//    Author: Kenneth Perkins//    Date:   Apr 2, 2022//    Taken From: http://programmingnotes.org///    File:  Solution.cs//    Description: Demonstrates how to remove all target linked list elements// ============================================================================/** * Definition for singly-linked list. * public class ListNode { *     public int val; *     public ListNode next; *     public ListNode(int val=0, ListNode next=null) { *         this.val = val; *         this.next = next; *     } * } */public class Solution {    public ListNode RemoveElements(ListNode head, int val) {        var ptr = head;         // Loop through data checking to see if the next node equals the target value        while (ptr != null && ptr.next != null) {             // If the next node value is the target value, set the next node            // to point to the one after it            if (ptr.next.val == val) {                ptr.next = ptr.next.next;            } else {                // Advance to the next node                ptr = ptr.next;            }        }         // If the head equals the target value, advance to the next        if (head != null && head.val == val) {            head = head.next;        }         return head;    }}// http://programmingnotes.org/ ```

QUICK NOTES:
The highlighted lines are sections of interest to look out for.

The code is heavily commented, so no further insight is necessary. If you have any questions, feel free to leave a comment below.

Once compiled, you should get this as your output for the example cases:

``` [1,2,3,4,5] [] [] ```