如何获得链表的头部?
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; }
}
}
假设我们有一个链表
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; }
}
}