您的位置:首页 > 其它

单链表的建立与就地逆置

2012-10-04 19:18 351 查看
package test;

public class SingleLink {
public int value;
public SingleLink next;
//采用头插法
public void createSinle(SingleLink head){
head.value=0;
int n=10;
while(n>0)
{
SingleLink node=new SingleLink();
node.value=n;
node.next=head.next;
head.next=node;
n--;
}
}
//采用尾插法
public void createSingleBytail(SingleLink head)
{
int n=10;
head.value=0;
SingleLink p;
p=head;
while(n>0)
{
SingleLink node=new SingleLink();
node.value=n;
p.next=node;
p=node;
n--;

}

}
//单链表的就地逆置
public SingleLink reverse(SingleLink head){
SingleLink p,q,t = null;
p=head.next;
q=head;
head.next=null;
while(p!=null)
{
t=p.next;
p.next=q;
q=p;
p=t;

}
return q;
}
public void Didplay(SingleLink head)
{
SingleLink link;
link=head;
while(link!=null)
{
System.out.println(link.value);
link=link.next;
}
System.out.print("********\n");
}
public static void main(String[] ars)
{
SingleLink list=new SingleLink();
list.createSinle(list);
list.Didplay(list);
list.createSingleBytail(list);
list.Didplay(list);
list.Didplay(list.reverse(list));

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: