JSFiddle - React, Tailwind, and code Playground
by meddle
JavaScript
function ListNode(val) {
this.val = val;
this.next = null;
}
// 1->2->3->4->5
var head = new ListNode(1);
head.next = new ListNode(2);
head.next.next = new ListNode(3);
head.next.next.next = new ListNode(4);
head.next.next.next.next = new ListNode(5);
var printList = function (head) {
var pointer = head;
while (pointer !== null) {
console.log(pointer.val);
pointer = pointer.next;
}
};
var removeNthFromEnd = function(head, n) {
if (n <= 0) {
return head;
}
var pointer1 = head,
pointer2 = head,
i = n;
for (; pointer1 !== null; i--) {
if (i < 0) {
pointer2 = pointer2.next;
}
pointer1 = pointer1.next;
}
if (i === 0) {
return head.next;
}
pointer2.next = pointer2.next.next;
return head;
};
printList(removeNthFromEnd(head, 4));