python中如何用递归与迭代方法实现链表反转
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章主要讲解了"python中如何用递归与迭代方法实现链表反转",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python中如何用递归与迭代方法实现
千家信息网最后更新 2025年11月09日python中如何用递归与迭代方法实现链表反转
这篇文章主要讲解了"python中如何用递归与迭代方法实现链表反转",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python中如何用递归与迭代方法实现链表反转"吧!
定义链表node结构:
class ListNode: def __init__(self,data): self.data = data self.next = None
将L转化为链表:
def make_list(L):
将L初始化为链表:
head = ListNode(L[0]) cur = head for i in L[1:]: cur.next = ListNode(i) cur = cur.next return head
遍历链表:
def print_list(head): cur = head while cur != None: print(cur.data,end=' ') cur = cur.next
递归法 反转链表:
def reverse_list(head):
三要素:
1.明确函数功能,该函数可以将链表反转,并返回一个头节点
2.结束条件:当链表为空或只有一个节点时返回
if head==None or head.next==None: return head
3.等价条件(缩小范围),对于数组来讲,缩小范围是n——>n-1,对于链表来讲则可以考虑
head——
>head.next reverse = reverse_list(head.next) #假设reverse是head以后的、已经反转过的链表
接下来要做的是将head节点接到已经反转过的reverse上:
tmp = head.next tmp.next = head head.next = None return reverse #返回新的列表
迭代法:
def reverse_list2(head): #print_list(head) cur = head pre = None while cur: tmp = cur.next cur.next = pre pre = cur cur = tmp head = pre return head if __name__ == '__main__': L = [3,2,7,8] head = make_list(L)
正序打印:
print('原始list:') print_list(head) print('\n')反转后打印:
revere = reverse_list(head) print('反转一次的list:') print_list(revere) print('\n')反转2:
print('head is') print_list(head) #发现此时head节点变成了最后一个节点,说明函数是对head这个实例直接作用的 print('\n') # print('revere is') # print_list(revere) # print('\n') print('反转两次的list:') print_list(reverse_list2(revere))感谢各位的阅读,以上就是"python中如何用递归与迭代方法实现链表反转"的内容了,经过本文的学习后,相信大家对python中如何用递归与迭代方法实现链表反转这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
递归
迭代
节点
方法
函数
学习
内容
条件
范围
原始
接下来
个头
作用
功能
只有
实例
就是
思路
情况
数组
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库添加密码长度限制
2021年网络安全培训主持词
dat自动导入数据库
国庆70周年网络安全讲话
开浪网络技术上海有限公司
数据库的主要目的
计算机图形学数据库
数据库概论是学什么的
顾客关系管理数据库设计
软件开发花销大么
TOM聊天软件开发
台达asd服务器报011代码
国企网络安全公司
密码学与网络安全第七版下载
市工商局联合网络安全应急演练
排队半天然后无法连接服务器
裸金属服务器网络类型有哪些
mdb数据库用户数
苹果在国内有没有服务器
腾讯云服务器在哪可以设置密码
时序数据库数据挖掘
耳伴 服务器维护
data数据库文件可以恢复吗
软件开发你用资源
网络安全损失
数据通信网络技术填空题
互联网科技大数据信息分类
世界互联网大会 科技创新
广东综合软件开发价格对比
腾讯云服务器在哪可以设置密码