JSFiddle - React, Tailwind, and code Playground

by danbeam

JavaScript

function nodeFromEnd(head, howFar) {
    var tmp = head;
    var i = 0;
    var node = null;
    while (tmp) {
        if (i <= howFar) {
            if (i == howFar)
                node = head;
            ++i;
        } else {
            node = node.next;
        }
        tmp = tmp.next;
    }
    return node;
}

var a;
a = {data: 1};
a.next = {data: 2};
a.next.next = {data: 3};
a.next.next.next = {data: 4};
a.next.next.next.next = {data: 5};
a.next.next.next.next.next = {data: 6};

console.log(nodeFromEnd(a, 2).data);
console.log(nodeFromEnd(a, 0).data);
console.log(nodeFromEnd(a, 5).data);
console.log(nodeFromEnd(a, 7));