• 网新恒天笔试题,有一个整型的单向链表A,请编程将其倒序。


    代码如下:

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

    struct llist
    {
        
    int num;
        
    struct llist *next;    
    };
    typedef 
    struct llist node;
    typedef node 
    *llink;

    void printllist(llink ptr)//链表输出
    {
        
    while(ptr != NULL)
        {
            printf(
    "[%d]",ptr->num);
            ptr 
    = ptr->next;    
        }
        printf(
    "\n");    


    //链表的创建
    llink createllist(int *array,int len)
    {
        llink head;
    //链表的开始指针 
        llink ptr,ptr1;
        
    int i;
        
        
    //创建第一个结点
        head = (llink)malloc(sizeof(node));//分配内存 
        if(!head)//检查指针 
        {return NULL;}
        head
    ->num = array[0]; //创建结点内容 
        head->next =NULL;//设置指针初值 
        ptr = head;    //将ptr指向链表开始 
        for(i=1;i<len;i++)    //创建其他结点循环 
        {
            ptr1 
    = (llink)malloc(sizeof(node));
            
    if(!ptr1)
            {
                
    return NULL;
            }    
            ptr1
    ->num = array[i];  //创建结点内容 
            ptr1->next =NULL;
            ptr
    ->next = ptr1;
            ptr 
    = ptr->next;
        }    
        
    return head;


    //链表的反转
    llink invertllist(llink head)
    {
        llink mid,last;
        mid 
    = NULL; //mid是head的前结点 
        while(head != NULL)
        {
            last 
    = mid;    //last是mid的前结点 
            mid =head;
            head 
    = head->next; //下一个结点 
            mid->next = last;    //mid指向前结点last 
        }
        
    return mid;    


    int main(int argc, char *argv[])
    {
      
    int llist[6= {1,2,3,4,5,6};
      llink head;
      
      head 
    = createllist(llist,6);
      
    if(!head)
      {
        printf(
    "内存分配失败!\n");
        exit(
    1);    
      }
      printf(
    "原来的链表:");
      printllist(head);
      head 
    = invertllist(head);
      printf(
    "反转后链表:");
      printllist(head);
        
        
      
      system(
    "PAUSE");    
      
    return 0;
    }

    合乎自然而生生不息。。。
  • 相关阅读:
    Github开源人脸识别项目face_recognition
    yolo源码解析(3):进行简单跳帧
    [转]详细解读TrueSkill 排名系统
    yolo源码解析(3):视频检测流程
    Java中replace和replaceall的区别
    对input输入框日期显示格式化
    Eclipse修改编码字体
    Eclipse修改控制台字体
    Eclipse文档注释导出doc
    数组的定义方式及初始化
  • 原文地址:https://www.cnblogs.com/samwu/p/1982823.html
Copyright © 2020-2023  润新知