Linked Lists

Run Settings
LanguageJavaScript
Language Version
Run Command
// let myLinkedList = { // head: { // value: 5, // next: { // value: 10, // next: { // value: 16, // next: null // } // } // } // } class Node { constructor(value) { this.value = value; this.next = null } } class LinkedList { constructor(value){ this.head = { value: value, next: null }; this.tail = this.head; this.length = 1; } append(value) { // const newNode = { // value: value, // next: null // } const newNode = new Node(value); this.tail.next = newNode; this.tail = newNode; this.length++; return this; } prepend(value) { const newNode = new Node(value); newNode.next = this.head; this.head = newNode; this.length++; return this; } printList() { let array = []; let currentNode = this.head while(currentNode !== null) { array.push(currentNode.value) currentNode = currentNode.next; } return array; } insert(index, value) { } } const myLinkedList = new LinkedList(10); myLinkedList.append(5) myLinkedList.append(16) myLinkedList.prepend(85) myLinkedList.prepend(50) myLinkedList.printList() console.log(myLinkedList)
// add a method remove() to the linked list that deletes a node to the specified index. class LinkedList { constructor(value) { this.head = { value: value, next: null }; this.tail = this.head; this.length = 1; } append(value) { const newNode = { value: value, next: null } this.tail.next = newNode; this.tail = newNode; this.length++; return this; } prepend(value) { const newNode = { value: value, next: null } newNode.next = this.head; this.head = newNode; this.length++; return this; } printList() { const array = []; let currentNode = this.head; while(currentNode !== null){ array.push(currentNode.value) currentNode = currentNode.next } return array; } insert(index, value){ //Check for proper parameters; if(index >= this.length) { console.log('yes') return this.append(value); } const newNode = { value: value, next: null } const leader = this.traverseToIndex(index-1); const holdingPointer = leader.next; leader.next = newNode; newNode.next = holdingPointer; this.length++; return this.printList(); } traverseToIndex(index) { //Check parameters let counter = 0; let currentNode = this.head; while(counter !== index){ currentNode = currentNode.next; counter++; } return currentNode; } } let myLinkedList = new LinkedList(10); myLinkedList.append(5); myLinkedList.append(16);myLinkedList.prepend(1); myLinkedList.insert(2, 99); myLinkedList.insert(20, 88);
// add a method remove() to the linked list that deletes a node to the specified index. class LinkedList { constructor(value) { this.head = { value: value, next: null }; this.tail = this.head; this.length = 1; } append(value) { const newNode = { value: value, next: null } this.tail.next = newNode; this.tail = newNode; this.length++; return this; } prepend(value) { const newNode = { value: value, next: null } newNode.next = this.head; this.head = newNode; this.length++; return this; } printList() { const array = []; let currentNode = this.head; while(currentNode !== null){ array.push(currentNode.value) currentNode = currentNode.next } return array; } insert(index, value){ //Check for proper parameters; if(index >= this.length) { console.log('yes') return this.append(value); } const newNode = { value: value, next: null } const leader = this.traverseToIndex(index-1); const holdingPointer = leader.next; leader.next = newNode; newNode.next = holdingPointer; this.length++; return this.printList(); } traverseToIndex(index) { //Check parameters let counter = 0; let currentNode = this.head; while(counter !== index){ currentNode = currentNode.next; counter++; } return currentNode; } remove(index) { // Check Parameters const leader = this.traverseToIndex(index-1); const unwantedNode = leader.next; leader.next = unwantedNode.next; this.length--; return this.printList(); } } let myLinkedList = new LinkedList(10); myLinkedList.append(5); myLinkedList.append(16);myLinkedList.prepend(1); myLinkedList.insert(2, 99); myLinkedList.insert(20, 88); myLinkedList.remove(2);
class LinkedList { constructor(value) { this.head = { value: value, next: null }; this.tail = this.head; this.length = 1; } append(value) { const newNode = { value: value, next: null } console.log(newNode) this.tail.next = newNode; this.tail = newNode; this.length++; return this; } prepend(value) { const newNode = { value: value, next: null } newNode.next = this.head; this.head = newNode; this.length++; return this; } printList() { const array = []; let currentNode = this.head; while(currentNode !== null){ array.push(currentNode.value) currentNode = currentNode.next } return array; } insert(index, value){ //Check for proper parameters; if(index >= this.length) { console.log('yes') return this.append(value); } const newNode = { value: value, next: null } const leader = this.traverseToIndex(index-1); const holdingPointer = leader.next; leader.next = newNode; newNode.next = holdingPointer; this.length++; return this.printList(); } traverseToIndex(index) { //Check parameters let counter = 0; let currentNode = this.head; while(counter !== index){ currentNode = currentNode.next; counter++; } return currentNode; } remove(index) { // Check Parameters const leader = this.traverseToIndex(index-1); const unwantedNode = leader.next; leader.next = unwantedNode.next; this.length--; return this.printList(); } reverse() { if (!this.head.next) { return this.head; } let first = this.head; this.tail = this.head; let second = first.next; while(second) { const temp = second.next; second.next = first; first = second; second = temp; } this.head.next = null; this.head = first; return this.printList(); } } let myLinkedList = new LinkedList(10); myLinkedList.append(5) myLinkedList.append(16) myLinkedList.prepend(1) myLinkedList.printList() myLinkedList.insert(2, 99) myLinkedList.insert(20, 88) myLinkedList.printList() myLinkedList.remove(2) myLinkedList.reverse()
Editor Settings
Theme
Key bindings
Full width
Lines