【PTA】数据结构6.1单链表逆转
文章目录
题目描述
本题要求实现一个函数,将给定的单链表逆转。
函数接口定义:
List Reverse( List L );
其中List结构定义如下:
typedef struct Node *PtrToNode;
struct Node {
ElementType Data; /* 存储结点数据 */
PtrToNode Next; /* 指向下一个结点的指针 */
};
typedef PtrToNode List; /* 定义单链表类型 */
题解
设置两个指针,其中一个作为辅助用来存放要操作的链表,另一个链表,另一个在被赋值后先修改后继(相当于删除节点),再用头插法将节点插入到原有的链表中
代码
List Reverse( List L ){
List p,q;
p=L;
L=NULL;//先将原来的链表置空
while(p){
q=p;//存放节点
p=p->Next;//往后遍历
q->Next=L;//修改后继指针
L=q;//头插
}
return L;
}
总结
数据结构的基本操作之一,要掌握