Java 链表在输出时创建infinte循环(不允许使用迭代器)

Java 链表在输出时创建infinte循环(不允许使用迭代器),java,list,infinite-loop,Java,List,Infinite Loop,当用户将两个或多个值存储到列表中时,输出显示以下内容: item 3: null item 4: null item 5: null ... item 14623: null 当用户想要输出列表时,就是这种情况 case OUTPUT: { System.out.println ("The List:"); displayList(); break; } 这将导致displayList()方法 和list.get() getNext() 遍历()。我认为这种方法是造成

当用户将两个或多个值存储到列表中时,输出显示以下内容:

item 3: null
item 4: null
item 5: null
...
item 14623: null
当用户想要输出列表时,就是这种情况

case OUTPUT:
{
    System.out.println ("The List:");
    displayList();
    break;
}
这将导致displayList()方法

和list.get()

getNext()

遍历()。我认为这种方法是造成问题的原因

public Node traverse(int index)
{
    Node n = header;

    if (index < 0)
    {
        return null;
    }

    for (int indexTwo = 0; indexTwo < index; indexTwo++)
    {
        if (n == null)
        {
            return null;
        } // end of if (n == null)
        n = n.getNext ();
    }
    return n;
}
公共节点遍历(int索引)
{
节点n=报头;
如果(指数<0)
{
返回null;
}
for(int indexTwo=0;indexTwo
此部分永远不会执行:

for (int indexTwo = 0; indexTwo < index; indexTwo++) 
编辑:

另一个问题是您的
size()
方法:

public int size()
{
    for(Node n = header; n.getNext() != null; n = n.getNext())
    {
        size++;
    }
    return size;
}
在何处增加属于静态变量的
size
变量?一个。因此,它必须在其他地方初始化。我想你需要把它变成一个局部变量,并在这个方法中初始化它。 另一个问题是,您在每个步骤中会得到两次
getNext()

对于(节点n=header;n.getNext()!=null;n=n.getNext())


只需检查
n
not
n.getNext()!=空的
对于空的

您能否首先共享生成列表的代码?还有您正在使用的列表类是否正在初始化
标题
?如果节点n=报头;如果为null,则整个过程将返回null。您是指将值添加到列表中的方法吗?此外,我们还必须将列表设为clssAlso,直到n为null,否则您将增加大小,这也可能会导致问题。请尝试调用列表上的size()方法。它返回什么?不幸的是,输出仍然是一个无限循环
public Node getNext()
{
    return next;
}
public Node traverse(int index)
{
    Node n = header;

    if (index < 0)
    {
        return null;
    }

    for (int indexTwo = 0; indexTwo < index; indexTwo++)
    {
        if (n == null)
        {
            return null;
        } // end of if (n == null)
        n = n.getNext ();
    }
    return n;
}
for (int indexTwo = 0; indexTwo < index; indexTwo++) 
for (int indexTwo = 0; indexTwo <= index; indexTwo++) 
public int size()
{
    for(Node n = header; n.getNext() != null; n = n.getNext())
    {
        size++;
    }
    return size;
}