遍历链表 Java 的实现

Jae*_*Kim 1 java linked-list list nodes

所以我读了几篇关于这个主题的文章,但它们都提到了遍历一个已经由 Java 实现的链表;例如,LinkedList<String> list = new LinkedList<String>();。然后继续说使用 for 循环遍历链表。但是,我正在尝试实现自己的链表,但不确定如何遍历它们。换句话说,我有以下代码:

class Node {
    private Node next = null; 
    private int data; 

    public Node(int d) {
        data = d; 
    }

    void appendToTail(int d) {
        Node end = new Node(d); 
        Node n = this; 
        while(n.next != null) {
            n = n.next; 
        }
        n.next = end; 
    }

    void print() {
        Node n = this; 
        while(n.next != null) {
            System.out.println(n); 
            n = n.next; 
        }
    }

    public static void main(String [] args) {
        Node x = new Node(4); 
        x.appendToTail(5); 
        x.print(); 
    }   
}
Run Code Online (Sandbox Code Playgroud)

print()我编写的函数是我尝试遍历链表的努力。但是,它不起作用。给定您自己的链表实现,有人知道如何遍历链表吗?

rak*_*rul 5

改变

while(n.next != null) 
Run Code Online (Sandbox Code Playgroud)

while(n != null)
Run Code Online (Sandbox Code Playgroud)

因为在循环内部,您正在打印当前节点 n,然后通过以下方式将其指向下一个节点n = n.next;