У меня есть вопрос:
Напишите рекурсивную функцию java, которая подсчитывает количество узлов в круговом списке.
Вот метод/функция:
public int countNodes(Node node){
if (node == null) {
return 0;
}
else{
return 1+countNodes(node.next);
}
}
Я получаю ошибку в строке return 1 + countNodes (node.next); в котором говорится, что: следующий не может быть разрешен для значения или поля в java
Что я должен сделать, чтобы исправить эту ошибку?
Класс Node должен быть следующим:
public class Node {
private Node next;
public Node getNext(){
return next;
}
//setter and other stuff
}
и вы должны вызвать node.getNext()
return 1+countNodes(node.getNext());
Не забывайте, что Java является объектно-ориентированным языком.
Как ваш код стоит, вы пытаетесь получить доступ к несуществующему полю под названием "следующий" в узле. Или добавьте это поле (если Node - это класс, который вы создали), или вы имели в виду вызов метода, который называется next? Если да, то node.next()
next
должно быть? Где это определено / объявлено?