/**
* 插入节点的方法
*/
public void insert(int index, E e) {
checkIndex(index);// 检查index
// 找到下标为index的节点
Node node = root.getNext();
for (int i = 0; i < index; i++) {
node = node.getNext();
}
Node node1 = new Node(e);
if (index == 0) {// 如果要插入在最前面
root.setNext(null);// 断开空节点和第一个节点
root.setNext(node1);// 空节点指向新节点
node1.setNext(node);// 新节点指向原第一个节点
} else {
// 找到下标为index节点的前一个节点
Node node2 = root.getNext();
for (int i = 0; i < index - 1; i++) {
node2 = node2.getNext();
}
node2.setNext(null);// 断开前一个节点
node2.setNext(node1);
node1.setNext(node);
}
size++;
}
/**
* 反转
*/
public void back() {
int num = size - 1;
Node node = root.getNext();// 得到下标为num的点
for (int i = 0; i < num; i++) {
node = node.getNext();
}
last = node;// 更新last
if (num > 0) {
for (int j = 0; j < num; j++) {
Node node1 = root.getNext();// 找到下标为num-j-1的点
for (int i = 0; i < num - j - 1; i++) {
node1 = node1.getNext();
}