我有一个非常尴尬和简单的怀疑。我正在Java中实现Linklist。 即使被调用后显示()功能不打印任何内容。该函数在Linklist类中,但是当我调用该函数时,没有任何反应。甚至 System.out.println(“显示”)行也不起作用。
//Link class
class Link
{
String name;
Link next;
Link(String name)
{
this.name=name;
next = null;
}
}
//Linklist class
class Linklist
{
Link first;
Linklist()
{
first=null;
}
public void addLinks(String name)
{
Link search=first;
if(first==null)
{
Link head = new Link(name);
first=head;
}
else
{
while(search.next!=null)
{
search.next=search;
}
Link newlink = new Link(name);
search.next = newlink;
}
}
//This function is not working properly.
public void display()
{
System.out.println("Display");
Link search=first;
while(search.next==null)
{
System.out.println(search.name);
search.next=search;
}
}
}
public class p1 {
public static void main(String args[])
{
Linklist ls = new Linklist();
ls.addLinks("Kanha");
ls.addLinks("lal");
ls.addLinks("Mishra");
ls.display();
}
}
答案 0 :(得分:1)
那是因为有一个永无止境的循环(在addLinks()
和display()
方法中),所以它永远不会有机会打印任何东西:
while(search.next!=null)
{
search.next=search;
}
你可能打算写
search = search.next;
此外,display()
中的while循环的条件应该代替
while(search.next==null)
是
search.next != null
(但你必须在...之前打印第一个元素的内容)