Skip to content

Instantly share code, notes, and snippets.

@minsooshin
Created December 5, 2016 23:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save minsooshin/b57802fce2ae161a6b609c4400c030b6 to your computer and use it in GitHub Desktop.
Save minsooshin/b57802fce2ae161a6b609c4400c030b6 to your computer and use it in GitHub Desktop.
class Node {
constructor(element) {
this.element = element;
this.next = null;
}
}
class LinkedList {
constructor() {
this.head = new Node('head');
}
find(item) {
let currentNode = this.head;
while (currentNode.element !== item) {
currentNode = currentNode.next;
}
return currentNode;
}
findPrevious(item) {
let currentNode = this.head;
while (currentNode.next !== null && currentNode.next.element !== item) {
currentNode = currentNode.next;
}
return currentNode;
}
display() {
let currentNode = this.head;
while (currentNode.next !== null) {
console.log(currentNode.element);
currentNode = currentNode.next;
}
}
insert(element, item) {
let newNode = new Node(element);
let currentNode = this.find(item);
newNode.next = currentNode.next;
currentNode.next = newNode;
}
remove(item) {
let previousNode = this.findPrevious(item);
if (previousNode.next !== null) {
previousNode.next = previousNode.next.next;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment