Для поиска третьего элемента из последнего требуется, чтобы вы сохранили переменную и присвоили ее корневому элементу и увеличили ее, когда длина связанного списка больше, чем равна 3.

class Node {
    constructor(value) {
        this.data = value;
        this.next = null;
    }
}
class LinkedList {
    add(value) {
        const node = new Node(value);
        let current = this.root;
        if (current == null) {
            this.root = node;
        } else {
            while (current.next != null) {
                current = current.next;
            }
            current.next = node;
        }
    }
    findThirdFromEnd() {
        let third;
        let current = this.root;
        let length = 0;
        while (current != null) {
            if (length >= 3) {
                third = third.next;
            } else {
                third = this.root;
            }
            current = current.next;
            ++length;
        }
        if (length >= 3) {
            return third.data;
        }
    }
}
const list = new LinkedList();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
console.log("third element from end", list.findThirdFromEnd())