qq_31419033 2015-09-29 05:03 采纳率: 100%
浏览 2350
已采纳

C语言中单向的链表反转

node* reverse1(node * head)
{
node*p,*q,*r;
p = head;

q = head->next;

head->next = NULL;
while(q){

r = q->next;

q->next = p;

p = q;

q = r;
}

head=p;
/* while(p)
{
printf("%d ",p->num);
p=p->next;
}*/
printf("\n");
return head;

}

  • 写回答

2条回答 默认 最新

  • qq1223386926 2015-09-29 05:33
    关注
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct _node
    {
            int data;
            struct _node *next;
    } node;
    
    node*
    reverse1(node * head)
    {
            node*p,*q,*r;
    
            if( head != NULL )
            {
                    p = head;
                    q = head->next;
    
                    head->next = NULL;
                    while(q){
                            r = q->next;
                            q->next = p;
    
                            p = q;
                            q = r;
                    }
    
                    head=p;
            }
            return head;
    }
    
    int
    main( void )
    {
            node *link = NULL;
            node *tmp = NULL;
            int i = 0;
    
            for( i = 0; i < 5; i++ )
            {
                    tmp = malloc( sizeof( node ) );
                    if( tmp == NULL )
                            return -1;
    
                    tmp->data = i;
                    tmp->next = link;
                    link = tmp;
            }
    
            tmp = link;
            printf( "before reversal:\n" );
            while( tmp )
            {
                    printf( "%d ", tmp->data );
                    tmp = tmp->next;
            }
            putchar( '\n' );
    
            link = reverse1( link );
            printf( "after reversal:\n" );
            tmp = link;
            while( tmp )
            {
                    printf( "%d ", tmp->data );
                    tmp = tmp->next;
            }
            putchar( '\n' );
    
            return 0;
    }
    
    测了一下,应该可以使吧
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 关于无人驾驶的航向角
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了