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));
}
}
单链表的建立与就地逆置
最新推荐文章于 2021-09-17 00:52:10 发布