この関数を実装する方法を理解できないようです。プロトタイプは以下です。
public static <K> K nthGet (Map<K,K> m, K k, int n);
これがすべきことは、マップ m を取得し、そのマップから k から始まる n 番目のキーを返すことです。したがって、n が 3 の場合、m.get(m.get(m.get(k))) を返します。
n からキーの最終値を返すには、nthGet への再帰呼び出しを使用する必要があると感じていますが、よくわかりません。