следующий не может быть разрешен в значение или поле в Java

1

У меня есть вопрос:

Напишите рекурсивную функцию java, которая подсчитывает количество узлов в круговом списке.

Вот метод/функция:

public int countNodes(Node node){

    if (node == null) {
        return 0;
    }
    else{
            return 1+countNodes(node.next);
    }
}

Я получаю ошибку в строке return 1 + countNodes (node.next); в котором говорится, что: следующий не может быть разрешен для значения или поля в java

Что я должен сделать, чтобы исправить эту ошибку?

  • 0
    Что next должно быть? Где это определено / объявлено?
  • 0
    Предполагается, что это будет следующий узел для доступа. Я должен определить это?
Показать ещё 2 комментария
Теги:
linked-list
recursion
count
circular

2 ответа

0
Лучший ответ

Класс Node должен быть следующим:

public class Node {

    private Node next;

    public Node getNext(){
        return next;
    }

    //setter and other stuff


} 

и вы должны вызвать node.getNext()

 return 1+countNodes(node.getNext());

Не забывайте, что Java является объектно-ориентированным языком.

0

Как ваш код стоит, вы пытаетесь получить доступ к несуществующему полю под названием "следующий" в узле. Или добавьте это поле (если Node - это класс, который вы создали), или вы имели в виду вызов метода, который называется next? Если да, то node.next()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню