Question

Implement an algorithm to find the kth to last element of a singly linked list.

Do it recursively.

Solution

Iterative solution is easy, recursive is not.

Code

public static int nthToLastRecursive(LinkedListNode head, int n) {
    if (n == 0 || head == null) {
        return 0;
    }
    int k = nthToLastRecursive(head.next, n) + 1;
    if (k == n) {
        System.out.println(n + "th to last node is " + head.data);
    }
    return k;
}