【PTA】数据结构6.1单链表逆转

【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;
}

总结

数据结构的基本操作之一,要掌握

发布了29 篇原创文章 · 获赞 18 · 访问量 3994

猜你喜欢

转载自blog.csdn.net/weixin_44522586/article/details/104662049