// https://www.freecodecamp.org/learn/coding-interview-prep/data-structures/add-elements-at-a-specific-index-in-a-linked-list function LinkedList() { var length = 0; var head = null; var Node = function (element) { this.element = element; this.next = null; }; this.size = function () { return length; }; this.head = function () { return head; }; this.add = function (element) { var node = new Node(element); if (head === null) { head = node; } else { var currentNode = head; while (currentNode.next) { currentNode = currentNode.next; } currentNode.next = node; } length++; }; // Only change code below this line this.addAt = (index, element) => { if (index < 0 || index > length) { return false; } let i = 0; let previousNode = null; let nextNode = head; while (i < index && nextNode !== null) { i++; previousNode = nextNode; nextNode = nextNode.next; } if (i != index) { return false; } const node = new Node(element); if (previousNode === null) { head = node; } else { previousNode.next = node; } node.next = nextNode; length++; return true; }; // Only change code above this line }