如何获得链表的头部?

How to get the head of a linkedlist?

假设我们有一个链表

LinkedList<Integer> list = new LinkedList<Integer>();
list.add(3);
list.add(5);
list.add(6);

我们如何访问链表的头部? 函数 getFirst() 不是我在这里需要的,因为它只是 returns 第一个元素 3 而不是第一个节点。如何获得列表的第一个节点? 我示例中的第一个节点是值为 3 的节点,指向 5.

如果您想 return 带有数据的实际节点,您可以使用嵌套节点 class 实现自己的 LinkedList class,并 return 它在那里。您无权访问 java.util class 在其实现中使用的 "Node"。

编辑: 如果您想在代码中看到我在说什么,请考虑以下代码。尽管它在任何方面都不完整,但我将其打出来是为了证明您不能简单地创建自己的节点 class 并将 java.util.LinkedList 节点分配给它,因为您将无法访问他们在实现中使用的节点。相反,执行如下操作:

public class MyList {
    private Node head;

    public Node getHeadNode() {
        return this.head;
    }
    public class Node {
        private int data;
        private Node next;
        //constructor
        public Node(int data) { this.data = data; this.next = null; }
    }
}