LinkedList

Run Settings
LanguageJavaScript
Language Version
Run Command
class Node{ constructor(value) { this.data = value; this.next = null; } } class LinkedList{ constructor(value){ this.head = new Node(value); this.tail = this.head; this.length = 1; } append(value){ let newNode = new Node(value); this.tail.next = newNode; this.tail = newNode; this.length++; } prepend(value) { let newNode = new Node(value); newNode.next = this.head; this.head = newNode; this.length++; } printList(){ let arr = []; let currNode = this.head; while(currNode!=null) { arr.push(currNode.data); currNode = currNode.next; } return arr; } insertAt(n,value) { if(n>=this.length) return this.append(value); let count = 0; let currNode = this.head; while(count!=n) { currNode = currNode.next; count++; } let newNode = new Node(value); newNode.next = currNode.next; currNode.next = newNode; this.length++; } remove(n) { if(n>=this.length) return -1; let count = 0; let currNode = this.head; let prev = this.head; while(count!=n) { prev = currNode; currNode = currNode.next; count++; } prev.next = currNode.next; currNode=null; return true; } } let obj = new LinkedList(6); obj.append(5); obj.append(7); obj.prepend(1); obj.insertAt(100,100); obj.remove(2); console.log(obj.printList())
Editor Settings
Theme
Key bindings
Full width
Lines