动态单链表的就地逆置

//单链表逆置 
#include<stdio.h>
#include<stdlib.h> 


typedef struct node{


int data;
struct node *next; 


}Node , *LinkList ; 


LinkList CreatList(LinkList L,int *num)//创建链表并统计长度,输入0结束; 
{
LinkList p,q;
L = (LinkList)malloc(sizeof(Node)); 
L -> next = NULL;
q = L;
while(1)
{
p = (LinkList)malloc(sizeof(Node));
scanf("%d",&p -> data); 
p -> next = NULL; 
if(p -> data == 0)
break; 
(*num) ++; 
q -> next = p;
q = p; 


return L; 



LinkList reverList(LinkList L)//变相的头插法重置链表 
{
LinkList p , q;
p = L -> next;
L -> next = NULL;
while(p)
{
q = p -> next;
p -> next = L -> next;
L -> next = p;
p = q; 


p = L -> next;
while(p)
{
printf("%d ",p -> data);
p = p -> next; 




return L; 







int main()
{
LinkList L;
int len = 0; 
L = CreatList(L,&len); 
printf("the length of your List is:%d \n",len); 
reverList(L); 




system("pause"); 
return 0; 
}
 

// 只能说和头插法几乎一样




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值