链表逆置的四种方法详解
创作时间:
作者:
@小白创作中心
链表逆置的四种方法详解
引用
CSDN
1.
https://m.blog.csdn.net/2402_88002942/article/details/142885810
背景要求
给定一条链表,将其逆置。
方法一(循环迭代)
实现思路
设pre、cur、nxt三个指针,分别令其指向空、表头和q的下一个元素,如图:
令cur的next结点指向pre,如图:
令pre、cur、nxt依次向后移动,如图:
重复以上步骤,如下图:
至此,链表逆置成功。
实现代码
Node* reverse(Node* head) {
Node* pre = NULL;
Node* cur = head;
Node* nxt = NULL;
while (cur != NULL) {
nxt = cur->next;
cur->next = pre;
pre = cur;
cur = nxt;
}
head = pre;
return head;
}
复杂度
时间复杂度O(n),空间复杂度O(1)
方法二(递归)
实现思路
递归
首先考虑出口,即递归至最深:head->next == NULL
借助栈理解即先将各个结点从头到尾压入栈,如图
到出口了,退栈:
逆置结束。
但说实话递归这件事在我这不能细想,一想就绕进去了,所以代码实现可以粗暴理解为:
实现代码
Node* Recursion_reverse(Node* head) {
if (head == NULL || head->next == NULL) {//判空和出口
return head;
}
else {
Node* new_head = Recursion_reverse(head->next);
head->next->next = head;
head->next = NULL;
return new_head;
}
}
复杂度
时间复杂度O(n),空间复杂度O(n)
方法三(头插法)
实现思路
跟打麻将摸牌一样,一张一张插进去就好,如图:
实现代码
Node* head_reverse(Node* head)
{
Node* new_head = NULL;
Node* temp = NULL;
if (head == NULL || head->next == NULL)
return head;
while (head != NULL)
{
temp = head;
head = head->next;
temp->next = new_head;
new_head = temp;
}
return new_head;
}
复杂度
时间复杂度O(n),空间复杂度O(1)
方法四(就地逆置)
实现思路
其实就是这个
展开来讲,如下:
一条一条拧,就逆置过来了。
实现代码
Node* local_reverse(Node* head)
{
Node* begin = NULL;
Node* end = NULL;
if (head == NULL || head->next == NULL)
return head;
begin = head;
end = head->next;
while (end != NULL)
{
begin->next = end->next;
end->next = head;
head = end;
end = begin->next;
}
return head;
}
复杂度
时间复杂度O(n),空间复杂度O(1)
热门推荐
姜维城遗址:汶川的文化瑰宝
揭秘电场线:从静电现象到现代科技应用
掌握静电场实验:设备使用、数据记录与结果分析
掌握电场线特性,轻松破解电场难题
从军事要塞到民权象征:加州十大历史地标全览
旧金山艺术宫:百年古罗马建筑的重生与新生
阿拉伯谚语挑战赛:谁最懂阿拉伯文化?
《阿拉伯谚语经典语录》:智慧宝典
《阿拉伯谚语经典语录》:智慧的结晶,文化的传承
道教文化中的吕洞宾传奇
姜上:当代风水大师的传奇之路
半月板损伤治疗迎来新突破:从手术创新到非手术疗法
广州医科大学专家解析:半月板损伤的真相
探索与定位:如何在职场中找到自己的位置
英足总杯:富勒姆主场迎战沃特福德,谁能打破平局魔咒?
富勒姆主场迎战沃特福德:足总杯第三轮谁将胜出?
LACMA:西岸艺术明珠,毕加索到浮世绘的14.7万种可能
CVPR 2024首办AI艺术展,68件作品展现科技艺术新融合
洛杉矶:从抗议艺术到“世界壁画之都”
一文详解:延迟退休政策下公务员提前退休路径
北京公务员退休金达8000-9000元,引发社会公平讨论
青岛经典游览攻略:啤酒博物馆、崂山等5大景点详解
重庆四面山:158米华夏第一高瀑与6208级爱情天梯
“南国雪原”金佛山:15万平米滑雪场,玩雪泡泉一站式体验
重庆两日游完全攻略:解放碑到洪崖洞,专业导游带你玩转山城
生化妊娠后多久可以再次受孕?专家建议这样做
石材浮雕:中国古代雕塑艺术的历史见证
双色球开奖号码揭秘:大数据下的投资策略
云南避暑古镇,600多年历史,消费低
漳浦旅游攻略:漳浦一日游最佳景点推荐