LinkedList

Run Settings
LanguageJavaScript
Language Version
Run Command
// myLinkedList = { // head: { // value: 10, // next: { // value: 5, // next: { // value: 16, // next: null // } // } // } // } class Node{ constructor(value){ this.value = value; this.next = null; } } class LinkedList { constructor(value) { this.head = new Node(value); this.tail = this.head; this.length = 1; } append(value) { const newNode = new Node(value); this.tail.next = newNode; this.tail = newNode; this.length++; } prepend(value) { const newNode = new Node(value); newNode.next = this.head; this.head = newNode; this.length++; } printList() { const array = []; let currentNode = this.head; while (currentNode !== null) { array.push(currentNode.value); currentNode = currentNode.next; } return array; } insert(index, value) { // check params if(index === 0) { return this.prepend(value); } if(index >=this.length) { return this.append(value); } const newNode = new Node(value); const leader = this.traverseToIndex(index - 1); const holdingPointer = leader.next; leader.next = newNode; newNode.next = holdingPointer; this.length++; return this.printList(); } traverseToIndex(index) { // check params let counter = 0; let currentNode = this.head; while (counter !== index) { currentNode = currentNode.next; counter++; } return currentNode; } } const myLinkedList = new LinkedList(10); myLinkedList.append(5); myLinkedList.append(16); myLinkedList.prepend(1); myLinkedList.insert(200, 99); myLinkedList.insert(2, 201); myLinkedList.insert(20, 88); myLinkedList.printList();
Editor Settings
Theme
Key bindings
Full width
Lines