Why last test not pass Please Help me

Tell us what’s happening:

Your code so far

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

var Node = function(element){
  this.element = element;
  this.next = 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 {
      let currentNode = head;

          currentNode  = currentNode.next;

      currentNode.next = node;


this.remove = function(element){
  // Only change code below this line
    let currentNode = head;
   var previousNode;
 if(currentNode.element===element ){
   head = currentNode.next}

     while(currentNode.element !==element ){
       previousNode = currentNode ;
       currentNode = currentNode.next;
     previousNode.next = currentNode.next;

  // Only change code above this line

Your browser information:

User Agent is: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36.

Challenge: Remove Elements from a Linked List

Link to the challenge:

Let’s say you add 3 elements to your linked list and try to use your remove method to remove an element which does not exist (like below):

  var test = new LinkedList();

Your while loop will iterate and at some point currentNode becomes null because of the last line in the while loop:

currentNode = currentNode.next

It becomes null, because the last item’s next property is null, then when the while loop condition tries to evaulate currentNode.element !== element, since currentNode is null, you create a TypeError because null does not have an element property.