package Java数据结构与算法char5;public class LinkAfterList {
public static void main(String[] args) {
// TODO Auto-generated method stub
LinkList2 list2=new LinkList2();
list2.insert(12,23.4);
list2.insert(52,33.4);
list2.insert(32,27.4);
list2.insert(15,2.54);
list2.insert(12,26.4);

list2.display();
}}
class Link2{
public int iData;
public double dData;
public Link2 next;

public Link2(int id,double dd){
iData=id;
dData=dd;
}

public String toString(){
return "{"+iData+","+dData+"}";
}
}class LinkList2{
private Link2 first;
LinkList2(){
first=null;
}

public void insert(int ida,double dda){
Link2 link=new Link2(ida,dda);
link.next=first;
first=link;
}

public void display(){
Link2 crr=first;
while(crr!=null){
System.out.println(first.toString());
crr=crr.next;
}
}
}
为什么后面的会把前面的数字给覆盖了啊?我整了半天硬是没弄明白是怎么回事!

解决方案 »

  1.   

    因为你粗心写错了一个变量名:public void display(){
            Link2 crr=first;
            while(crr!=null){
                System.out.println(first.toString());//应该是crr,否则就每次打印都是同一个变量了
                crr=crr.next;
            }
        }
      

  2.   

    link.next=first;
    first=link;
    改成这样试试:
    first=link;
    link.next=first;