For this exercise you must get the tests to pass.
Given the following constructor functions:
function Node(val){
this.val = val;
this.prev = null;
this.next = null;
}
function DoublyLinkedList(){
this.head = null;
this.tail = null;
this.length = 0;
}
Implement the following on the DoublyLinkedList.prototype
This function should add a node to the end of the DoublyLinkedList. It should return the new the list so that the method can be chained.
This function should remove a node at the end of the DoublyLinkedList. It should return the node removed.
This function should add a node to the beginning of the DoublyLinkedList. It should return the list so that the method can be chained.
This function should remove a node at the beginning of the DoublyLinkedList. It should return the node removed.
This function should find a node and replace its val or return undefined if the node is not found.
This internal/helper function should find a node at a specified index in a DoublyLinkedList. It should return the found node.
This internal/helper function should insert a node at a specified index in a DoublyLinkedList. It should return the new length of the DoublyLinkedList.
This function should remove a node at a specified index in a DoublyLinkedList. It should return the removed node.
This function should reverse all of the nodes in a DoublyLinkedList. It should return the reversed DoublyLinkedList.
Complete the following codewars problems