有些小地方还有修改的地方 , 但是大体思路没有问题 . 大家随便看看吧 …
package t35MyLinkedList;
public class MyLinkedList<E> {
Node<E> last ;
Node<E> first ;
int size = 0 ;
public MyLinkedList() {
}
// 向后添加元素
public void addNext(E data) {
Node<E> node = new Node<>() ;
node.data = data ;
size++ ;
if(last == null ) {
last = node;
first = node ;
return ;
}
last.next = node ;
node.pre = last ;
last = node ;
}
// 向前添加元素
public void addPre(E data) {
Node<E> node = new Node<>() ;
node.data = data ;
size++ ;
if(first == null ) {
first = node ;
last = node ;
return ;
}
first.pre = node ;
node.next = first ;
first = node ;
}
// 删除元素
public E removePre() {
/*
* 保留第一个节点
* 将第二个节点前置节点设置为null
* 更新第一节点
*/
Node<E> temp = first ;
first.next.pre = null ;
first = first.n