数据结构
双向链表
节点类型:
private static class Node<E> {
// 实际存放的元素
E item;
// 后一个元素
Node<E> next;
// 前一个元素
Node<E> prev;
// 构造函数元素顺序分别为前,自己,后。就像排队一样
Node(Node<E> prev, E element, Node<E> next) {
this.item = element;
this.next = next;
this.prev = prev;
}
}
成员变量
// list中的元素个数
transient int size = 0;
// 链表的头节点
transient Node<E> first;
// 链表的尾节点
transient Node<E> last;
重要方法
add(E e)
添加到链表尾,注意空链表
remove(Object o)
onull时要把Node.itemnull都删除,删除Node要注意前后节点的链接,考虑前后节点在头尾