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 WPF动态创建页面内容
  • ¥15 如何对TBSS的结果进行统计学的分析已完成置换检验,如何在最终的TBSS输出结果提取除具体值及如何做进一步相关性分析
  • ¥15 SQL数据库操作问题
  • ¥100 关于lm339比较电路出现的问题
  • ¥15 Matlab安装yalmip和cplex功能安装失败
  • ¥15 加装宝马安卓中控改变开机画面
  • ¥15 STK安装问题问问大家,这种情况应该怎么办
  • ¥15 关于罗技鼠标宏lua文件的问题
  • ¥15 halcon ocr mlp 识别问题
  • ¥15 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线