Remove Elements from a Linked List

Remove Elements from a Linked List


Tell us what’s happening:

Why am I failing the tester? It says that currentNode is not defined.

Your code so far

function LinkedList() { 
  var length = 0; 
  var head = null; 

  var Node = function(element){ // {1} 
    this.element = element; = null; 

  this.size = function() {
    return length;

  this.head = function(){
    return head;

  this.add = function(element){
    var node = new Node(element);
    if(head === null){
        head = node;
    } else {
        currentNode = head;

            currentNode  =;
        } = node;


  this.remove = function(element){
    var currentNode = head;
    var previousNode;
    if(currentNode.element === element){
        head =;
    } else {
        while(currentNode.element !== element) {
            previousNode = currentNode;
            currentNode =;
        } =;

    length --;

  // Only change code below this line

  // Only change code above this line

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36.

Link to the challenge:


Your code is correct.

The test is running the add method to set up the test and is encountering and error there. The error:

// running test
currentNode is not defined
currentNode is not defined
currentNode is not defined
// tests completed

When I change line 23 (in the add method) to:

       var currentNode = head;

It passes. It was failing because currentNode was being used in the add method but was never defined. It is a mistake in the problem code and not your fault. I’ll add it to the list of things that need to be changed.