链表反转递归法和循环法的实现:

# 定义节点

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)相关推荐

  1. python链表翻转_反转链表(两种Python解法)

    题目: 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你 ...

  2. python链表库_[转]为什么python标准库没有实现链表

    实际上刚开始学习一些高级语言的时候我也有同样的疑问,而且即使有链表对应物的语言,链表常常也很少被实际使用. 如果是在国外听数据结构的课,老师一般会警告你这只是一个理论概念,实际应用应该实际考察,在通常 ...

  3. python单链表排序_单链表排序之选择排序

    单链表排序是单链表的常见编程任务之一,也是面试中经常出现的题目.单链表排序的关键是交换算法,需要额外考虑.选择排序是比较直观的排序算法之一,这里就使用选择排序实现单链表的排序. C实现代码如下: Li ...

  4. python包括哪些部分_第一部分 Python基础篇

    第⼀一部分 Python基础篇 1. 为什什么学习Python? 朋友推荐,比较简单易学,生态圈比较强大 发展趋势:人工智能.数据分析 2. 通过什什么途径学习的Python? 廖雪峰.网络博客.相关 ...

  5. python列表去空值_如何在Python列表中的列表中删除nan / null值? - python

    因此,我有一个具有NaN值的数据框,并将该数据框中的所有行转换为一个列表,然后将其添加到另一个列表中. Index 1 2 3 4 5 6 7 8 9 10 ... 71 72 73 74 75 76 ...

  6. python 读取内存二叉树_二叉树类python

    python中的树数据结构 线性数据中的典型顺序表和链表已经讲完: <顺序表数据结构在python中的应用> <python实现单向链表数据结构及其基本方法> <pyth ...

  7. python中输入字符串_简单讲解Python中的字符串与字符串的输入输出

    简单讲解Python中的字符串与字符串的输入输出 发布于 2016-03-26 14:35:42 | 110 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向 ...

  8. 测试工程师python常见面试题_测试人员python面试题

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 这条路会很曲折,你也会一度认为是不是自己选错了,但只要坚持,就算最后没有成功,但 ...

  9. python变量定义大全_详解python变量与数据类型

    这篇文章我们学习 Python 变量与数据类型 变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问.在 Python 中 变量命名规定,必须是大小写英文,数字 ...

最新文章

  1. Vue 自定义权限指令
  2. 重点 (七) : 开发技巧/方法
  3. 【知识星球】超3万字的网络结构解读,学习必备
  4. SAP Spartacus支持的语言和货币单位的数据源
  5. Polly组件对微服务场景的价值
  6. 音频光端机与电话光端机区别
  7. 洛谷 P1219 八皇后题解
  8. layoutSubviews调用
  9. 数组的方法之(Array.prototype.reduce() 方法)
  10. 智能语音识别app下载-智能语音识别app安卓版下载v2.2 - 非凡软件站
  11. 短信API接口组团出战,加速企业转型升级
  12. 部门 2016 总结
  13. 旅游攻略app开发定制
  14. CentOS7 安装 chrome
  15. pat甲级1013图柳神代码解析自学复盘
  16. DDOS攻击监测工具软件DDOS_Monitor下载
  17. solar在linux系统下的部署过程
  18. macOS 中 Cornerstone 的Clean操作和终端的svn cleanup命令无效了怎么办?
  19. 转行不知道改选金融还是电信
  20. 记第一次mysql被黑事件

热门文章

  1. Go之Beego原生查询QueryRow QueryRows Values ValuesList ValuesFlat RowsToMap RowsToStruct
  2. Git一电脑配置config多个git用户 一个用于公司工作 一个用于个人学习
  3. PHP索引数组关联数组
  4. Yii的应用主体的配置
  5. python决策树可视化_「决策树」| Part3—Python实现之可视化
  6. MySQL中group_concat()函数用法总结
  7. a标签传值到另一个页面_Vue组件传值与通信集合
  8. 改变层级_3DMAX基础,可编辑多边形层级介绍及概念
  9. 【springboot】SpringBootTest 测试时, application.properties 文件的查找顺序
  10. springboot mail插件/JavaMailSenderImpl 发邮件。163网易企业邮箱调用的坑。