链表逆置的四种方法详解
创作时间:
作者:
@小白创作中心
链表逆置的四种方法详解
引用
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)
热门推荐
从香饽饽到票房毒药:金像奖、金马奖最佳新人演员周杰伦息影简史
古人腰间玉佩的挂法
遗传性白发怎么改善
美联储2024议息时间一览表是什么?
糖化血红蛋白吃饭有影响吗
整存整取定期存款:多种存法详解及高息策略
倪海厦针灸笔记:三皇穴详解与临床应用
甘油三酯的克星食物
选择哪个后缀域名更有利于网站品牌建设?
2024年领养孩子条件和标准全解析
2025年注会财务管理目录都有什么内容?
股性活跃的定义是什么?股性活跃的股票有哪些特征?
流手汗很严重怎么办
电路设计到仿真实现:单相桥式全控整流电路的完全指南
2025年春季运动装备选购指南:从基础款到搭配技巧全解析
濮阳壮馍:河南传统名吃制作详解
河南壮馍的详细做法及和面过程
揭秘:大山西为何能保存中国最多古建筑
中国科学家研发新型木质纤维素分离技术,实现生物质资源高值化利用
减脂期也能吃的美味零食推荐,让你嘴巴不寂寞
再讲最后一遍,自动挡停车别直接从D挡挂P挡,正确的做法是这样的
全国综合实力百强县市榜发布,张家港位列第三!
庐山十大必吃美食排名
菊花的象征意义:从诗词到园林,从医药到艺术
期权是实值还是虚值应该如何判断?
金融期权的类型对投资策略有何影响?
肠道总是闹情绪?肠易激综合征,这些事儿你该知道
炒土豆丝焯水和不焯水的区别?两种做法口感天差地别
土豆怎么炒好吃?分享土豆的5种家常做法,减脂养胃又脆爽
全国模范教师李小平:希望我的每个学生都是明媚的