码迷,mamicode.com
首页 > 其他好文 > 详细

【PTA】6-1 单链表逆转 (20分)

时间:2020-06-09 16:24:25      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:eve   存储   point   ==   text   bsp   lib   裁判   span   

【PTA】6-1 单链表逆转 (20分)

函数接口定义:

 1 List Reverse( List L ); 

其中 List结构定义如下:

1 typedef struct Node *PtrToNode;
2 struct Node {
3     ElementType Data; /* 存储结点数据 */
4     PtrToNode   Next; /* 指向下一个结点的指针 */
5 };
6 typedef PtrToNode List; /* 定义单链表类型 */

 L是给定单链表,函数 Reverse要返回被逆转后的链表。

裁判测试程序样例:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 typedef int ElementType;
 5 typedef struct Node *PtrToNode;
 6 struct Node {
 7     ElementType Data;
 8     PtrToNode   Next;
 9 };
10 typedef PtrToNode List;
11 
12 List Read(); /* 细节在此不表 */
13 void Print( List L ); /* 细节在此不表 */
14 
15 List Reverse( List L );
16 
17 int main()
18 {
19     List L1, L2;
20     L1 = Read();
21     L2 = Reverse(L1);
22     Print(L1);
23     Print(L2);
24     return 0;
25 }
26 
27 /* 你的代码将被嵌在这里 */

输入样例:

5
1 3 4 5 2

输出样例:

1
2 5 4 3 1

函数实现细节:

 1 List Reverse(List L)
 2 {
 3     if(L==NULL)return NULL;
 4     if(L->Next==NULL)return L;
 5     List p,t,q;
 6     int point=0;
 7     q=p=t=L;
 8     while(t!=NULL)
 9     {
10         if(point==0)
11         {
12             p=q->Next;
13             q->Next=NULL;
14             t=p->Next;
15             p->Next=q;
16             point=1;
17         }
18         else
19         {
20             q=p;
21             p=t;
22             t=t->Next; 
23             p->Next=q;
24         }
25     }
26     return p;
27 }

 

【PTA】6-1 单链表逆转 (20分)

标签:eve   存储   point   ==   text   bsp   lib   裁判   span   

原文地址:https://www.cnblogs.com/wyjgr/p/13073245.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!