Мне присваивается список классов (здесь: http://pastebin.com/ZCi3q7LQ) и им необходимо написать некоторые методы для него, включая метод, который находит индекс для указанного целого.Рекурсивный метод indexOf() для самодельного класса
Индексы начинаются с нуля, метод должен возвращать -1, если указанное число не указано в списке, метод должен работать рекурсивно и работать в $ O (n) $ time.
Моя проблема заключается в том, что метод возвращает -1 при вызове indexOf для целого числа, которое не входит в нетривиальный список. Я пробовал практически все возможные комбинации, а также прочитал некоторые похожие вопросы, но они не помогли. Это то, что я сделал:
public int indexOf(int x) {
return indexOf(x, first);
}
private static int indexOf(int x, Node n) {
if (n==null) {
return -1;
}
else if (n.data==x) {
return 0;
}
else return 1+indexOf(x, n.next);
}
Если х нет в списке, и список не пуст, то возвращается индекс последнего элемента, который не предназначен. Как я уже сказал, у меня полная потеря, как сделать эту работу, я буду признателен за любую помощь, которую я могу получить.
(если это имеет значение, да это домашнее задание.)
бы 'n' сам быть нулевым, или просто' n.next'? – Austin