所以这是代码

void add(String data) {
    Link newLink = new Link(data);
    newLink.next = firstLink;
    firstLink = newLink;
}


如果我们只有一个元素,则firstLink.next将指向自身,即firsLink(因为newLink.next = firstLink;),因此它不会为null。
如果我们有这样的打印方法:

void print() {
    Link currentLink = firstLink;
    while (currentLink != null) {
        System.out.println(currentLink.data);
        currentLink = currentLink.next;
    }
}


这应该是一个无限循环,但是实际上当我在Eclipse中启动它时,它不是正确的。
我的问题是为什么?

最佳答案

如果只有一个元素,则添加第一个元素时firstLink为null。

这意味着您的add()方法是这样的:

void add(String data) {
    Link newLink = new Link(data);    // create new link
    newLink.next = firstLink;         // set newLink.next = null
    firstLink = newLink;              // make newLink the first link
}

08-16 11:46