What is your hint or solution suggestion?
var Node = function(data, prev) {
this.data = data;
this.prev = prev;
this.next = null;
};
var DoublyLinkedList = function() {
this.head = null;
this.tail = null;
this.add = (element) => {
const newNode = new Node(element, null);
if (this.head === null) {
this.head = newNode;
this.tail = newNode;
} else {
newNode.prev = this.tail;
newNode.prev.next = newNode;
this.tail = newNode;
}
};
this.remove = (element) => {
let currentNode = this.head;
let prevNode = null;
let nextNode = null;
if (this.head === null) {
return null;
}
while (currentNode) {
if (currentNode.data !== element) {
currentNode = currentNode.next;
continue;
}
prevNode = currentNode.prev;
nextNode = currentNode.next;
if (currentNode === this.head) {
this.head = nextNode;
} else {
prevNode.next = nextNode;
}
if (currentNode === this.tail) {
this.tail = prevNode;
} else {
nextNode.prev = prevNode;
}
currentNode = currentNode.next;
}
};
};
Challenge: Issue Tracker
Link to the challenge: