class LinkedList {
constructor()
{
this.head = null;
this.size = 0;
}
insert(element)
{
let node = new Node(element);
var current;
if (this.head == null) {
this.head = node;
} else {
current = this.head;
while (current.next) {
if (current.element === element) {
throw `This key already exists: ${element}`
}
current = current.next;
}
current.next = node;
}
this.size++;
}
removeElement(element)
{
var current = this.head;
var prev = null;
while (current != null) {
if (current.element === element) {
if (prev == null) {
this.head = current.next;
} else {
prev.next = current.next;
}
this.size--;
return current.element;
}
prev = current;
current = current.next;
}
throw `This key does not exist: ${element}`;
}
}