java中一个关于倒序链表的小程序

来源:互联网 发布:查询自己电脑端口 编辑:程序博客网 时间:2024/05/01 21:30

 前两天,java老师布置了一个关于用java语言实现倒序链表的小程序,本来刚开始做时觉得蛮easy的,但java毕竟和C/C++有些出入,刚开始写的大体上能实现程序的要求,但在一些细节上总调试不出来,出现一些内存上的问题,最后在网上找了下资料,发现网上一些传上去相关程序根本运行不了,所以还是定下心来自己,在此希望与那些有需要的一同分享!

程序代码如下:

import java.io.*;
class Node{
 int data;
 Node next;
}
public class Link{
    Node header;
    Link(){
 }
 Link(int n)
 {
  Node p,q;
  header=new Node();
  header.data=(int)(Math.random()*100);
  p=header;
  for(int i=1;i <n;i++){
  q=new Node();
  q.data=(int)(Math.random()*100);
  p.next=q;
  p=q;
  }   
  }
    static Link reverse(Link list)
    {
    Link rev=new Link();
     Link runner=list;
     while(runner.header!=null)
     {
     Node newNode=new Node();
     newNode.data=runner.header.data;
     newNode.next=rev.header;
     rev.header=newNode;
     runner.header=runner.header.next;
     }
     return rev;
    }
 void outputLink()
   {
     Node p=header;
  while(p!=null)
  {
  System.out.print(p.data);
    if(p.next != null)
      System.out.print("->");
  p=p.next;
     }
 }
 public static  void main(String args[])
 {
 Link x=new Link(8);
 x.outputLink();
 System.out.println("");
  reverse(x).outputLink();
    System.out.println("");
    }
}