class ListNode {
constructor(val) {
this.val = val;
this.next = null;
}
}
class List {
constructor() {
this.head = null;
}
}
List.prototype.add = function (val) {
let curr = this.head;
const newNode = new Node(val);
if (!curr) {
this.head = newNode;
} else {
while (curr.next) {
curr = curr.next;
}
curr.next = newNode;
}
};
List.prototype.createList = function (arr) {
const dummy = new ListNode(null);
let curr = dummy;
while (arr.length) {
curr.next = new ListNode(arr.shift());
curr = curr.next;
}
return dummy.next;
};
const list = new List();
const linkedList = list.createList([1, 2]);
var removeNthFromEnd = function (head, n) {
if (!head) return null;
let dummy = new ListNode(null);
dummy.next = head;
let fastP = dummy;
let slowP = dummy;
for (let i = 0; i < n + 1; i++) {
fastP = fastP.next;
}
while (fastP) {
fastP = fastP.next;
slowP = slowP.next;
}
slowP.next = slowP.next.next;
return dummy.next;
};
console.log(removeNthFromEnd(linkedList, 2));