【问题标题】:next cannot be resolved to a value or field in javanext 无法解析为 java 中的值或字段
【发布时间】:2014-04-25 20:50:45
【问题描述】:

我有这个问题:

编写一个循环计算节点数的递归java函数 链表。

这里是方法/功能:

public int countNodes(Node node){

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

我收到一条错误消息 返回 1+countNodes(node.next); 这表示:next 无法解析为 java 中的值或字段

我应该怎么做才能修复这个错误?

【问题讨论】:

  • next 是什么意思?它在哪里定义/声明?
  • 它是要访问的下一个节点。我必须定义它?
  • 可能你在Node 中没有定义 next 或者从你的方法中看不到。
  • 接下来我如何定义以及定义为什么类型?

标签: java recursion circular-list


【解决方案1】:

Node 类应该是这样的:

public class Node {

    private Node next;

    public Node getNext(){
        return next;
    }

    //setter and other stuff


} 

你必须调用 node.getNext()

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

不要忘记 Java 是一种面向对象的语言。

【讨论】:

    【解决方案2】:

    按照您的代码的方式,您正在尝试访问 Node.js 中名为“next”的不存在字段。添加该字段(如果 Node 是您创建的类),还是您的意思是调用名为 next 的方法?如果是这样,请node.next()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-09
      • 2019-04-15
      • 2023-03-28
      • 1970-01-01
      • 2014-01-29
      • 2014-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多