Представьте, что вы были переданы в index == 1 - вам нужен второй элемент, да?
Однако ваш цикл while никогда не войдет (поскольку counter == 0 означает counter + 1 ==индекс).Поэтому измените цикл while на "while (counter
Вы обнаружите, что вам не нужно явное "if (index == 0)", тогда либо:)
Фактически, этот цикл затем конденсируется в цикл for, так что:
for (int counter=0; counter < index; counter++) {
temp = temp.next;
}