import java.io.*;
class Node{
int data;
Node next;
}
public class Link{
          Node header;
public Link()
{

Node p,q;
header=new Node();
header.data=(int)(Math.random()*100);
p=header;
for(int i=1;i<10;i++){
q=new Node();
q.data=(int)(Math.random()*100);
p.next=q;
p=q;
}    
     }
    
     static Link reverse(Link list){
     Link rev=null;
     Link runner=list;
     while(runner!=null)
     {
     Link newNode=new Link();
         newNode.header.data=runner.header.data;
     newNode.header.next=rev.header;
     rev=newNode;
     runner.header=runner.header.next;
    
          }
          return rev;
         
     }
 void outputLink()
   {
      Node p=header;
while(p!=null)
{
System.out.print(p.data+"->");
p=p.next;
     }

} public static  void main(String args[])
{
Link x=new Link();

x.outputLink();
System.out.println("  ");
     reverse(x);
     x.outputLink();




     }
    
}

解决方案 »

  1.   

     while(runner!=null) 
         { 
         Link newNode=new Link(); 
             newNode.header.data=runner.header.data; 
         newNode.header.next=rev.header; 
         rev=newNode; 
         runner.header=runner.header.next; 
         
              } 
    改为
     while(runner.eader!=null) 
         { 
         Link newNode=new Link(); 
             newNode.header.data=runner.header.data; 
         newNode.header.next=rev.header; 
         rev=newNode; 
         runner.header=runner.header.next; 
         
              } 
      

  2.   

    丢了个字母是while(runner.header!=null)