单链表逆序

//这个算法是没有头结点的情况
List Reverse( List L ){   //这里的L是原链表的表头.
 List head,next,prev;//head用来存储当前结点的地址,next存储下一个结点的地址,prev存储上一个
 head=L;  //当前结点是首元结点
 prev=NULL;//上一个结点应该是NULL
 while(head!=NULL){
   next=head->Next;  //首先先存储下下一个结点的地址。
   head->Next=prev;//让当前结点指向上一个结点。
   prev=head;      //下一次的前一个结点就是这一次的当前结点,使存放上一个结点的指针下移一位
   head=next;       //下一次的当前结点就是这一次的下一个结点,使存放当前结点的指针下移一位
 }
 return prev;    
 
}
//循环体里的四步,步骤不能错:1、记录当前结点的下一个结点
 //                      2、将当前结点指向上一个结点
//                       3、存放上一个结点的指针下移一位
//                       4、存放当前结点的指针下移一位
//后两步是为下一次循环准备,prev(存放上一个结点的指针和head(存放当前结点的指针)下移一位。  
//最后一个结点时head向下移动一位变成了NULL,prev就指向了最后一个结点,就是逆转后的链表的首元结点。     

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值