[c] 单链表创建,打印和反转

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

typedef struct linknode{
       int value;
       struct linknode *pNext;
}Node,*pNode;

pNode createlist(pNode head, int length){
         pNode p1;
         pNode p2;
         p1=(pNode)malloc(sizeof(Node));
         p1->pNext=NULL;
         p1->value=length;
         if (head==NULL) head=p1;
         while(length>1){
                          length--;
                          p2=(pNode)malloc(sizeof(Node));
                          p1->pNext=p2;
                          p2->value=length;
                          p2->pNext=NULL;
                          p1=p2;
                          }
          return head;
         }
         
void printlist(pNode head){
     pNode temp;
     temp=head;
     while(temp!=NULL){
                       printf("%d",temp->value);
                       temp=temp->pNext;
                       }
                       return ;
     }
pNode reverselist(pNode head){
      pNode p,temp;
      p=head->pNext;
      head->pNext=NULL;
      while(p!=NULL){
                      temp=p->pNext;
                      p->pNext=head;
                      head=p;
                      p=temp;
                      }
      return head;
     }
     
int main(){
    pNode head=NULL;
    int length;
    scanf("%d", &length);
    if(length<=0) return 0;
    head=createlist(head,length);
    printlist(head);
    head=reverselist(head);
    printlist(head);
    system("pause");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值