[英]Why my display function of linked list always printing the last element?
链表的我的dipslay功能如下: -
public void display()
{
cur = first;
if(isEmpty())
{
System.out.println("no elements in the list");
}
else
{
System.out.println("elements in the list are:");
do {
System.out.println(first.data);
first = first.link;
} while(first.link!=null);
first=cur;
}
其中curr
和first
是类节点的引用
public class node
{
int data;
Node link=null;
}
为什么这个函数只打印最后一个元素?
该功能看起来或多或少是正确的。 但是,为什么要将cur
设置为first
然后再使用first
来进行迭代? 只需使用cur
的迭代,所以你不必重新设置first
。
检查以确保正确地将节点添加到列表中。 因此,如果您认为列表中有3个元素,请在display()
运行:
System.out.println(first.data);
System.out.println(first.link.data);
System.out.println(first.link.link.data);
这是为了检查您的链接是否正确。
不可能肯定地说,但您的列表可能实际上只包含一个元素; 即创建列表的代码被破坏。
我还应该指出, display
方法应该使用局部变量来逐步执行元素。 如果您使用实例变量(例如, first
),您可能会有不同的方法相互干扰。
最后,您对列表末尾的测试不正确。 仔细考虑执行while
测试时first
和first.link
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.