Javascritp Linked List function.
class LinkListNode {
constructor(ele) {
this.next = null;
this.ele = ele
}
}
class LinkedList {
constructor() {
this.head = null;
this.length = 0;
}
append(ele) {
let newNode = new LinkListNode(ele)
if(this.head === null) {
this.head = newNode;
} else {
let current = this.head;
while(current.next !== null) {
current = current.next
}
current.next = newNode
}
this.length++
}
insert(position, ele) {
if(!(position > -1 && position <= this.length)) return false
let newNode = new LinkListNode(ele);
let current = this.head;
if(this.position == 0) {
newNode.next = current;
this.head = newNode
} else {
let previous;
let index = 0;
while(index != position) {
index++;
previous = current;
current = current.next;
}
newNode.next = current;
previous.next = newNode;
}
this.length++;
return true
}
removeAt(position) {
if(!(position > -1 && position <= this.length)) return false
let current = this.head;
if(position === 0) {
this.head = head.next;
} else {
let index = 0;
let previous;
while(position != index) {
previous = current;
current = current.next;
index++;
}
previous.next = current.next;
}
this.length--;
return current.ele
}
remove(ele) {
let index = this.indexOf(ele);
return this.removeAt(index)
}
indexOf(ele) {
let index = -1;
let current = this.head;
while(current) {
index++;
if(current.ele === ele) {
return index;
}
current = current.next;
}
return -1
}
output() {
let current = this.head;
let res = [];
while(current) {
res.push({
ele: current.ele,
next: (current = current.next)
})
}
return res
}
toString() {
let current = this.head;
let string = '';
while(current) {
string += `${current.ele} `;
current = current.next
}
return string
}
size(){
return this.length;
}
}
var linklist = new LinkedList();
linklist.append('Monday');
linklist.append('Wednesday');
linklist.insert(1,'Tuesday');
linklist.append('Fuck');
// linklist.removeAt(3);
linklist.remove('Fuck');
linklist.indexOf('Monday') // 0
linklist.size() // 3
linklist.output()
linklist.toString() // Monday Tuesday Wednesday