链表逆置

1 #include<stdio.h>                                                                                           
  2 #include<stdlib.h>
  3 typedef struct LinkNode
  4 {
  5     int data;
  6     struct LinkNode *next;
  7 }LinkList,LinkNode;
  8 void pushback(LinkList **head,int value)
  9 {
 10           LinkList *cur=*head;
 11    LinkNode *newnode=(LinkNode*)malloc(sizeof(LinkNode));
 12     newnode->data =value;
 13     newnode->next = NULL;
 14     if(head==NULL)
 15         return ;
 16     if(*head==NULL)
 17          *head=newnode;
 18     else
 19         {
 20             while(cur->next!=NULL)
 21                  cur=cur->next;
 22             cur->next= newnode;
 23         }
 24 }
 25 void reverse(LinkList **head)
 26 {
 27 //   LinkNode *key=(LinkNode*)malloc(sizeof(LinkNode));
 28 //  key->data =0;
 29 //  key->next = NULL;
 30     LinkNode *cur = *head;
 31     LinkNode *tmp,*key=NULL,*p;
 32     //key=NULL;
 33     if(*head==NULL)
 34         return ;
 35  //   if(*head==NULL)
 36    //     return;
 37     while(cur!=NULL)
 38     {
 39         tmp=cur->next;
 40         cur->next=key;
 41         key=cur;
 42         cur=tmp;
 43     }
 44 //    (*head)->next=NULL;                                                                                   
 45     *head = key;
 46 }
56 LinkList* reverse2(LinkList *head)
 57 {
 58     LinkNode *cur = head;
 59     LinkNode *tmp,*key=NULL;
 60     if(head==NULL)
 61         return ;
 62     //if(*head==NULL)
 63       //  return;
 64     while(cur!=NULL)
 65     { tmp=cur->next;
 66         cur->next=key;
 67         key=cur;
 68         cur=tmp;
 69      //   tmp=cur;
 70        // cur=cur->next;
 71        // tmp->next=key;
 72     //    key=tmp;
 73     }
 74                                                                                                             
 75     return key;
 76 }
47 void print(LinkList *head)
 48 {
 49           LinkNode *cur = head;
 50           while(cur!=NULL)
 51           {
 52                 printf("%d ",cur->data);          
 53                 cur=cur->next;
 54           }
 55 }
17 int main()
118 {
119           LinkList *L=NULL,*l=NULL;
120          pushback(&L,1);
121          pushback(&L,3);
122          pushback(&L,5);
123 //       pushback(&l,2);
124 //       pushback(&l,4);
125 //       pushback(&l,6);
126          reverse(&L);
128          print(L);
129          return 0;
130 }      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值