【考研数据结构算法刷题】设计一个算法,将链表中所有结点的链接方向“原地”逆转,即要求仅利用原表的存储空间,换句话说,要求算法的空间复杂度为 O(1)。
设计一个算法,将链表中所有结点的链接方向“原地”逆转,即要求仅利用原表的存储空间,换句话说,要求算法的空间复杂度为 O(1)。本题实现逆转相对简单,只需要依次读入,再经过头插法即可实现。本代码针对考研数据结构,采用伪代码实现,主要关注代码逻辑。
·
【问题描述】
设计一个算法,将链表中所有结点的链接方向“原地”逆转,即要求仅利用原表的存储空间,换句话说,要求算法的空间复杂度为 O(1)。
【参考代码】
typedef struct LNode
{
int data;
struct LNode* next;
}LNode, * LinkList;
void Inverse(LinkList &La)
{
LinkList pa, p;
pa = La->next;
La->next = NULL; //头插法
while (pa)
{
p = pa->next;
pa->next = La->next;
La->next = pa; //pa插入头结点之后
pa = p;
}
}
【代码解析】
本代码针对考研数据结构,采用伪代码实现,主要关注代码逻辑。
本题实现逆转相对简单,只需要依次读入,再经过头插法即可实现。

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)