-
Notifications
You must be signed in to change notification settings - Fork 0
/
linkedList.js
45 lines (43 loc) · 1.04 KB
/
linkedList.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class Node{
constructor(element){
this.element = element;
this.next = null;
}
}
class LinkedList{
head = new Node("Head");
find = function find(element){
let curNode = this.head;
while(curNode !== element){
curNode = curNode.next;
}
return curNode;
}
insert = function insert(newElement, item){
let newNode = new Node(newElement);
let current = this.find(item);
newNode.next = current.next;
current.next = newNode;
}
remove = function remove(item){
let prevNode = this.findPrevious(item);
if(!(prevNode.next === null)){
prevNode.next = prevNode.next.next;
}
}
display = function display(){
let curNode = this.head;
while(!(curNode.next === null)){
console.log(curNode.next.element);
curNode = curNode.next;
}
}
findPrevious = function findPrevious(item) {
let curNode = this.head;
while(!(curNode.next === null) && (curNode.next !== item)){
curNode = curNode.next;
}
return curNode;
}
}
module.exports = LinkedList;