text: const { NotImplementedError } = require("../extensions/index.js");
  
  /**
   * Given a singly linked list of integers l and an integer k,
   * remove all elements from list l that have a value equal to k.
   *
   * @param {List} l
   * @param {Number} k
   * @return {List}
   *
   * @example
   * For l = [3, 1, 2, 3, 4, 5] and k = 3,
   * the output should be [1, 2, 4, 5]
   *
   * Singly - linked lists are already defined with this interface
   * function ListNode(x) {
   *   this.value = x;
   *   this.next = null;
   * }
   */
  
  module.exports = function removeKFromList(l, k) {
      let currentNode = l;
      let beforeNodeToDelete = null;
      let nodeToDelete = null;
  
      while (currentNode.next !== null) {
          if (l.value === k) {
              l = currentNode.next;
              currentNode = l;
          }
          if (currentNode.next.value === k) {
              beforeNodeToDelete = currentNode;
              nodeToDelete = currentNode.next;
              beforeNodeToDelete.next = nodeToDelete.next;
              nodeToDelete = null;
          }
          currentNode = currentNode.next;
      }
      return l;
  };
  