在阅读 LinkedList 文档时,我对“标题”的使用感到有些困惑。通常,标头是linkedList 中的第一个节点。但在这里看起来“标题”是列表中的一个虚拟节点,它指向列表的第一个和最后一个节点,从而使 LinkedList 成为一个循环节点。真的吗?
private transient Entry<E> header = new Entry<E>(null, null, null);
public LinkedList() {
header.next = header.previous = header;
}
public E getFirst() {
if (size==0)
throw new NoSuchElementException();
return header.next.element;
}
public E getLast() {
if (size==0)
throw new NoSuchElementException();
return header.previous.element;
}
public E removeFirst() {
return remove(header.next);
}