在调用LinkList实现

时间:2017-04-21 08:19:46

标签: java linked-list

我有一个非常尴尬和简单的怀疑。我正在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();
}

}

1 个答案:

答案 0 :(得分:1)

那是因为有一个永无止境的循环(在addLinks()display()方法中),所以它永远不会有机会打印任何东西:

while(search.next!=null)
{
    search.next=search;
}

你可能打算写

search = search.next;

此外,display()中的while循环的条件应该代替

while(search.next==null)

search.next != null

(但你必须在...之前打印第一个元素的内容)