java - 遍历链表 Java 的实现

标签 java list linked-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(); 
    }   
}

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

最佳答案

改变

while(n.next != null) 

while(n != null)

因为在循环中你正在打印当前的 node n 然后将它指向它的下一个 node 通过: n = n.next;

关于java - 遍历链表 Java 的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32599386/

相关文章:

java - 我的 'Do' 循环做错了什么?

c# - 打印出 List<byte> 作为字符串值

java - 如果一个类是用泛型类型参数声明的,并且它在没有指定类型的情况下被实例化,它是否默认为 Object?

java - android 中相同包名的问题

无法从链表中删除最后一个元素

java - Java中如何在不使用Array或String的情况下读取和输出字符?

java - 我可以使用 Mockito 延迟 stub 方法响应吗?

java - 无法连接到 SMTP 主机 : smtp. gmail.com,端口 : 587; nested exception is: java.net.ConnectException:连接超时:连接

python - 将条件应用于 python 列表

c# - 在 C# 中查找和删除元组列表中的重复项