let currentNode = this.head; let newNode = new Node(value); // for loop index - 1 steps for (let i = 1; i <= index - 1; i++) { currentNode = currentNode.next; } newNode.next = currentNode.next; currentNode.next = newNode; this.length++; return; }
let currentNode = this.head; let newNode = new Node(value); // for loop index - 1 steps for (let i = 1; i <= index - 1; i++) { currentNode = currentNode.next; } newNode.next = currentNode.next; currentNode.next = newNode; this.length++; return; }
removeAt(index) { if (index > this.length - 1 || index < 0) { returnnull; } elseif (index === 0) { let result = this.shift(); return result; } elseif (index === this.length - 1) { let result = this.pop(); return result; }
let currentNode = this.head; for (let i = 1; i <= index - 1; i++) { currentNode = currentNode.next; } let temp = currentNode.next; currentNode.next = currentNode.next.next; this.length--; return temp; }
get(index) { if (index >= this.length || index < 0) { returnnull; } let currentNode = this.head; for (let i = 0; i < index; i++) { currentNode = currentNode.next; } return currentNode.value; }
printAll() { if (this.length === 0) { console.log("Nothing in this linked list."); return; } let currentNode = this.head; while (currentNode !== null) { console.log(currentNode.value); currentNode = currentNode.next; } } }
let myLinkedList = new LinkedList(); myLinkedList.push("Joe"); myLinkedList.push("Cherry"); myLinkedList.push("Denny"); myLinkedList.push("Fred"); myLinkedList.removeAt(1); myLinkedList.insertAt(1, "Ted");
myLinkedList.printAll(); // Joe Ted Denny Fred // console.log(myLinkedList.length);
/** * @param {number}index * @return {number} */ MyLinkedList.prototype.get = function(index) { if (index < 0 || index >= this.length) return -1; let current = this.head; let i = 0; while (i !== index) { current = current.next; i++; } return current.val; };
/** * @param {number}index * @param {number}val * @return {void} */ MyLinkedList.prototype.addAtIndex = function(index, val) { let newNode = new Node(val); if (index < 0 || index > this.length) return -1; if (index === 0) { this.addAtHead(val); } elseif (index === this.length) { this.addAtTail(val); } else { let current = this.head; let i = 0; while (i !== index - 1) { current = current.next; i++; } newNode.next = current.next; current.next = newNode; this.length++; } };
/** * @param {number}index * @return {void} */ MyLinkedList.prototype.deleteAtIndex = function(index) { if(index < 0 || index >= this.length) return -1; if (index === 0) { this.head = this.head.next; this.length--; } else{ let current = this.head; let i = 0; while (i !== index - 1) { current = current.next; i++; } current.next = current.next.next; if (index === this.length - 1) { this.tail = current; } this.length--; } };
/** * Your MyLinkedList object will be instantiated and called as such: * var obj = new MyLinkedList() * var param_1 = obj.get(index) * obj.addAtHead(val) * obj.addAtTail(val) * obj.addAtIndex(index,val) * obj.deleteAtIndex(index) */