首页 > 解决方案 > 我正在尝试计算 java 链表中的值 int 没有成功

问题描述

我试图计算链表中 int 的数量,但它没有用。我真的很高兴你的帮助。

public class Node {                 
    public int  data;                 
    public Node next;                 
    public Node (int data, Node next) {
        this.data = data;               
    }  

    public Node (int data) {          
        this(data,null);                
    }                                 
}

public static int occurrences (int value, Node intNode) {
    int counter =0 ;
    for (int i = 0 ; i < intNode.lenght ; i++)
    {
        if (i == intNode[i])
        {
             counter++
        }
        return counter;
    }
}

标签: javalinked-list

解决方案


  1. value 参数的意义何在?你不会在任何地方使用它。我想你的意思是:

if (value == intNode.data)

  1. 此外,您在循环结束之前返回计数器......因此您只运行一次 for 循环。您需要 return counter 作为方法中的最后一条语句,因此将其放在 for 循环之后。

  2. intNode 不是数组。它是一个节点对象。Node 对象没有称为长度的字段。因此,您不能在 for 循环条件中说 intNode.length。

  3. 由于 intNode 不是一个数组,而只是一个 Node 类型的对象,我不确定你为什么要写 intNode[i] 。你不能得到不是数组的东西的第 i 个元素,而只是一个对象。

您需要声明如下内容:

Node curNode = intNode

对于您的循环,您希望循环直到到达链表的末尾,这将是 currNode 为空的时候。所以你的循环将开始:

while (currNode != null)

然后,在循环的每次迭代结束时,您想要移动到下一个节点。像这样移动到下一个节点:

currNode = currNode.next

一旦 currNode 变为 null,循环将停止,您将返回计数器。

我认为你应该更多地研究链表。在此处查看帮助:https ://www.geeksforgeeks.org/linked-list-in-java/


推荐阅读