老师让我们模拟下LinkedList中的remove方法小弟想了半天才想出来这么个办法,可是这个办法只能删除头结点和尾结点,中间的没反映。
小弟的思路是将删除元素分成三种情况:1.删除的是头结点 那么就将head=第二个结点,然后将原来的头结点的引用变为null
   2.删除尾结点   那么就将最后个元素的引用变为null   3.删除中间部分的,先用一个Node变量 nn记录住我传入的索引的元素中的引用 Node nn=temp;  然后将temp=nn.next;  最后将nn的引用变为null
具体代码如下class Node {

Object data;  //数据元素
 Node next;  //指向下一个节点

public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}class LinkList {

 Node head;  //头节点
private int len;
public LinkList(){
len=0;
}

public LinkList(Node node){
this.head=node;
len=0;
}


public void add(Node node){
if(head==null){
head=node;
len++;
}
else{
Node temp=head;
while(temp.next!=null){
temp=temp.next;
}
temp.next=node;
len++;
}
}
public void remove(int index){
System.out.println(len);
if(index>=len||index<0){
throw new ArrayIndexOutOfBoundsException();
}


Node temp=head;
while(temp.next!=null){

temp=temp.next;

if(index==0){//0表示第一个元素.
System.out.println("删除第一个");
Node n=head;
head=n.next;
n=null;
break;
}else if(index==len-1){
System.out.println("删除最后");
temp.next=null;
break;
}else{
System.out.println("删除中间");
Node nn=temp;
temp=nn.next;
nn=null;
break;
}
}
}
public void display(){
Node temp=head;
while(temp!=null){
System.out.println(temp);
temp=temp.next;
}
}
}
class Test {
public static void main(String[] args) {
LinkList link=new LinkList();

Node n1=new Node();
link.add(n1);
Node n2=new Node();
link.add(n2);
Node n3=new Node();
link.add(n3);

link.remove(1);//删除第二个元素,0表示第一个.
System.out.println(n1);
System.out.println(n2);
System.out.println(n3);
System.out.println("------------------------------------");

link.display(); }}