有 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();
    }

}

LinkedList

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();

    }

}

共 (3) 个答案

  1. # 1 楼答案

    在的while循环中使用curr = curr.next;

  2. # 2 楼答案

    show()方法更改如下:

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

    show()方法中,缺少以下内容: curr = curr.next

    打印当前节点的值后