java - 链表实现 - 在无限循环中打印第一个元素

标签 java

我正在尝试实现链表,但我不明白这段代码有什么问题。 进入无限循环打印 1...第一次调用 insert() 时实例化起始节点

节点

public class Node {

    int data;
    Node next;


    public Node(int data, Node next) {
        super();
        this.data = data;
        this.next = next;
    }


    public Node() 
    {
        super();
    }

}

链接列表

public class LinkedList {

    Node start = null;

    void insert(int value)
    {

        Node current;
        current = start;

        if(start == null)
        {
            start = new Node(value, null);
            start.data = value;
            start.next = null;
        }

        else
        {
            while(current.next != null)
            {
                current = current.next;
            }
            current.next = new Node();
            current.next.data = value;
            current.next.next = null;
        }

    }

    void show()
    {
        Node curr = start;
        while(curr.next != null)
        {
            System.out.println(curr.data);
        }
    }


    public static void main(String[] args) {

        LinkedList ll = new LinkedList();
        ll.insert(1);
        ll.insert(7);
        ll.insert(5);
        ll.insert(3);
        ll.insert(9);

        ll.show();

    }

}

最佳答案

更改您的 show() 方法,如下所示:

void show() {
    Node curr = start;
    while (curr.next != null) {
        System.out.println(curr.data);
        curr = curr.next; // This part was missing.
    }
}

关于java - 链表实现 - 在无限循环中打印第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34736509/

相关文章:

java - 如果配置文件不在当前目录中,MaltParser 无法找到配置文件

java - 如何在android中的两个子 Activity 之间传输数据?

java - Appium Android Emulator 未关闭或测试失败

java - 如何防止在仅 Java 客户端程序中滥用客户端 secret ?

java - 在 subString 和 String 数组的元素之间进行比较时 equals() 方法返回 false

java - 如何在Java中向JFrame添加多个可拖动的图像?

java - 为什么我的 GUI 没有显示?

java - 为什么 JAXB 不能正确处理命名空间的子元素?

java - 如何加载和显示位图

java - XStream:如何在自定义转换器中编码/解码列表?