显示链接列表中的所有节点

时间:2013-10-19 04:12:21

标签: java

这是Linked List类的一部分,用于显示所有节点。

这个方法试图做的是设置前面(是的,我正在使用前面而不是头部,这无关紧要,但我正在实现基于链表的队列)到指针,在这种情况下称为“cur”并检查cur next node是否为null,如果不是则获取元素(两部分,共享和价格)并将cur设置为下一个节点,冲洗并重复直到下一个cur(在它进入之前)是null,在这种情况下,它退出循环并打印最后一个cur(在null之前称为tail / rear)。将所有元素添加到s(通过连接)

public Object displayAll() {
        Node cur = front;
        Object s = null;
        while(cur.getNext() != null) {
             s += cur.getShare() + " @ " + cur.getPrice();
            cur.setNext(cur);
        }
        s += cur.getShare() + " @ " + cur.getPrice();
        return s;
}

输出:它无数次重复第一个元素。 预期输出:我不想重复,但会显示所有节点的所有元素。

我错过了什么?有什么指示吗?

2 个答案:

答案 0 :(得分:2)

while(cur.getNext() != null) {             
   s += cur.getShare() + " @ " + cur.getPrice();
   cur = cur.getNext();
}

我已分配cur = cur.getNext()您是否未将cur重新分配给下一个节点。我也删除了cur.setNext(cur);

你得到了无限循环,因为在while条件下你检查下一个节点不应该是null但是你没有在循环中分配cur = next,所以你留下在第一个节点上,循环无限

答案 1 :(得分:1)

cur.setNext(cur)看起来很可疑,就像你设置一个节点链接到它自己一样,这显然是一种无限的关系。