java - 为什么我的链表赋值的 printList() 方法会出现无限循环?

标签 java while-loop linked-list nodes infinite-loop

这是我的 printList() 方法的代码:

public String printList() { 

String list = "";
Node tempnode = headNode;

while (tempnode != null) {

  list = list + tempnode.data + ", ";
  tempnode = tempnode.next;

}

return list;
}

我正在使用 System.out.println(myList.printList()); 调用该方法在我的主要。 当我调用该方法时,列表本身是正确的,但列表被打印了无数次,我不明白为什么。如有任何帮助,我们将不胜感激!

最佳答案

如果您的列表是循环的(如 @josejuan 提到的),那么这应该可以解决问题。

public String printList() 
{ 
    String list = "";
    Node tempnode = headNode;

    while (tempnode != null)
    {

        list = list + tempnode.data + ", ";
        tempnode = tempnode.next;

        if ( tempnode == headNode )
        {
            break;
        } 
    }

    return list;
}

关于java - 为什么我的链表赋值的 printList() 方法会出现无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59481805/

相关文章:

java - 在 Swagger Editor 中更改 java 项目的默认包名称

java - Java 中的 System.out.println() 与\n

java - Azure Java SDK : How to disable logging to console?

java - 在 while 循环中显示数字

c++ - 使用 cin 关闭 while 循环

c - 链表的交集

java - 链表很奇怪的删除

java - 同时保留两个实体

java - java中while循环接收到空字符串时如何输出空行?

c - 链表中的所有节点都指向同一个对象