python实现链表反转_反转链表(Python)
链表反转递归法和循环法的实现:
# 定义节点
class Node:
def __init__(self, value):
self.data = value
self.next = None
# 链表反转
# 1. 循环法
def reverse(head_node):
next_node = head_node.next
prev_node = head_node
#第一个节点反转后成为最后一个节点
prev_node.next = None
while True:
head_node = next_node
next_node = head_node.next
#反转
head_node.next = prev_node
if next_node == None:
break
prev_node = head_node
return head_node
## 2. 递归法
def recursive_reverse(reversed_node, new_node):
if new_node == None:
print(reversed_node)
return reversed_node
next_node = new_node.next
new_node.next = reversed_node
return recursive_reverse(new_node, next_node)
if __name__ == '__main__':
# 创建链表
head_node = Node(0)
node1 = Node(1)
node2 = Node(2)
node3 = Node(3)
node4 = Node(4)
head_node.next = node1
node1.next = node2
node2.next = node3
node3.next = node4
# 循环法
# head_node = reverse(head_node)
# 递归法
new_node = head_node.next
head_node.next = None
head_node = recursive_reverse(head_node, new_node)
# 打印反转后的链表
while head_node != None:
print(head_node.data)
head_node = head_node.next
python实现链表反转_反转链表(Python)相关推荐
- python链表翻转_反转链表(两种Python解法)
题目: 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你 ...
- python链表库_[转]为什么python标准库没有实现链表
实际上刚开始学习一些高级语言的时候我也有同样的疑问,而且即使有链表对应物的语言,链表常常也很少被实际使用. 如果是在国外听数据结构的课,老师一般会警告你这只是一个理论概念,实际应用应该实际考察,在通常 ...
- python单链表排序_单链表排序之选择排序
单链表排序是单链表的常见编程任务之一,也是面试中经常出现的题目.单链表排序的关键是交换算法,需要额外考虑.选择排序是比较直观的排序算法之一,这里就使用选择排序实现单链表的排序. C实现代码如下: Li ...
- python包括哪些部分_第一部分 Python基础篇
第⼀一部分 Python基础篇 1. 为什什么学习Python? 朋友推荐,比较简单易学,生态圈比较强大 发展趋势:人工智能.数据分析 2. 通过什什么途径学习的Python? 廖雪峰.网络博客.相关 ...
- python列表去空值_如何在Python列表中的列表中删除nan / null值? - python
因此,我有一个具有NaN值的数据框,并将该数据框中的所有行转换为一个列表,然后将其添加到另一个列表中. Index 1 2 3 4 5 6 7 8 9 10 ... 71 72 73 74 75 76 ...
- python 读取内存二叉树_二叉树类python
python中的树数据结构 线性数据中的典型顺序表和链表已经讲完: <顺序表数据结构在python中的应用> <python实现单向链表数据结构及其基本方法> <pyth ...
- python中输入字符串_简单讲解Python中的字符串与字符串的输入输出
简单讲解Python中的字符串与字符串的输入输出 发布于 2016-03-26 14:35:42 | 110 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向 ...
- 测试工程师python常见面试题_测试人员python面试题
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 这条路会很曲折,你也会一度认为是不是自己选错了,但只要坚持,就算最后没有成功,但 ...
- python变量定义大全_详解python变量与数据类型
这篇文章我们学习 Python 变量与数据类型 变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问.在 Python 中 变量命名规定,必须是大小写英文,数字 ...
最新文章
- Vue 自定义权限指令
- 重点 (七) : 开发技巧/方法
- 【知识星球】超3万字的网络结构解读,学习必备
- SAP Spartacus支持的语言和货币单位的数据源
- Polly组件对微服务场景的价值
- 音频光端机与电话光端机区别
- 洛谷 P1219 八皇后题解
- layoutSubviews调用
- 数组的方法之(Array.prototype.reduce() 方法)
- 智能语音识别app下载-智能语音识别app安卓版下载v2.2 - 非凡软件站
- 短信API接口组团出战,加速企业转型升级
- 部门 2016 总结
- 旅游攻略app开发定制
- CentOS7 安装 chrome
- pat甲级1013图柳神代码解析自学复盘
- DDOS攻击监测工具软件DDOS_Monitor下载
- solar在linux系统下的部署过程
- macOS 中 Cornerstone 的Clean操作和终端的svn cleanup命令无效了怎么办?
- 转行不知道改选金融还是电信
- 记第一次mysql被黑事件
热门文章
- Go之Beego原生查询QueryRow QueryRows Values ValuesList ValuesFlat RowsToMap RowsToStruct
- Git一电脑配置config多个git用户 一个用于公司工作 一个用于个人学习
- PHP索引数组关联数组
- Yii的应用主体的配置
- python决策树可视化_「决策树」| Part3—Python实现之可视化
- MySQL中group_concat()函数用法总结
- a标签传值到另一个页面_Vue组件传值与通信集合
- 改变层级_3DMAX基础,可编辑多边形层级介绍及概念
- 【springboot】SpringBootTest 测试时, application.properties 文件的查找顺序
- springboot mail插件/JavaMailSenderImpl 发邮件。163网易企业邮箱调用的坑。