首页 > 解决方案 > 用一个节点打印链表类失败

问题描述

出于学习目的,我创建了一个 LinkedList 类和一个 Node 类。

一旦我的 LinkedList 类只收到一个节点,我就无法在控制台中获得正确的输出。一旦我的 LinkedList 包含多个节点,一切看起来都很好。

这是我的 Node 类中的 toString 方法

@Override
public String toString() {
    return "Node{" +
            "value=" + value +
            ", next=" + next +
            '}';
}

并来自linkedList类

@Override
public String toString() {
    return "LinkedList{" +
            "head=" + head +
            ", tail=" + tail +
            ", length=" + length +
            '}';
}

如果我用两个节点运行链表,我得到

LinkedList{head=Node{value=1, next=Node{value=2, next=null}}, tail=Node{value=2, next=null}, length=2}

如果我只使用一个节点运行,则会出现 stackoverflow 错误

    at Node.toString(Node.java:12)
at java.base/java.lang.String.valueOf(String.java:2951)

我怎么解决这个问题?

标签: javadata-structures

解决方案


推荐阅读