单链表反转python实现代码示例


Posted in Python onFebruary 08, 2018

单链表的反转可以使用循环,也可以使用递归的方式

1.循环反转单链表

循环的方法中,使用pre指向前一个结点,cur指向当前结点,每次把cur->next指向pre即可。

单链表反转python实现代码示例

代码:

class ListNode: 
  def __init__(self,x): 
    self.val=x; 
    self.next=None; 
 
def nonrecurse(head):       #循环的方法反转链表 
  if head is None or head.next is None: 
    return head; 
  pre=None; 
  cur=head; 
  h=head; 
  while cur: 
    h=cur; 
    tmp=cur.next; 
    cur.next=pre; 
    pre=cur; 
    cur=tmp; 
  return h; 
   
head=ListNode(1);  #测试代码 
p1=ListNode(2);   #建立链表1->2->3->4->None; 
p2=ListNode(3); 
p3=ListNode(4); 
head.next=p1; 
p1.next=p2; 
p2.next=p3; 
p=nonrecurse(head);  #输出链表 4->3->2->1->None 
while p: 
  print p.val; 
  p=p.next;

结果:

4
3
2
1
>>>

2.递归实现单链表反转

class ListNode: 
  def __init__(self,x): 
    self.val=x; 
    self.next=None; 
 
   
def recurse(head,newhead):  #递归,head为原链表的头结点,newhead为反转后链表的头结点 
  if head is None: 
    return ; 
  if head.next is None: 
    newhead=head; 
  else : 
    newhead=recurse(head.next,newhead); 
    head.next.next=head; 
    head.next=None; 
  return newhead; 
   
head=ListNode(1);        #测试代码 
p1=ListNode(2);         # 建立链表1->2->3->4->None 
p2=ListNode(3); 
p3=ListNode(4); 
head.next=p1; 
p1.next=p2; 
p2.next=p3; 
newhead=None; 
p=recurse(head,newhead);      #输出链表4->3->2->1->None 
while p: 
  print p.val; 
  p=p.next;

运行结果同上。

总结

以上就是本文关于单链表反转python实现代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python爬取京东的商品分类与链接
Aug 26 Python
Python 加密的实例详解
Oct 09 Python
python 函数中的内置函数及用法详解
Jul 02 Python
python之PyQt按钮右键菜单功能的实现代码
Aug 17 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
Mar 09 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
基于jupyter代码无法在pycharm中运行的解决方法
Apr 21 Python
Django与pyecharts结合的实例代码
May 13 Python
使用Python文件读写,自定义分隔符(custom delimiter)
Jul 05 Python
利用Python优雅的登录校园网
Oct 21 Python
深入浅析Django MTV模式
Sep 04 Python
python数字图像处理实现图像的形变与缩放
Jun 28 Python
Python测试人员需要掌握的知识
Feb 08 #Python
python实现单向链表详解
Feb 08 #Python
Python生成器以及应用实例解析
Feb 08 #Python
代码分析Python地图坐标转换
Feb 08 #Python
python爬虫中get和post方法介绍以及cookie作用
Feb 08 #Python
Python OpenCV 直方图的计算与显示的方法示例
Feb 08 #Python
python OpenCV学习笔记之绘制直方图的方法
Feb 08 #Python
You might like
详谈PHP文件目录基础操作
2014/11/11 PHP
composer.lock文件的作用
2016/02/03 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
载入进度条 效果
2006/07/08 Javascript
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
jquery清空表单数据示例分享
2014/02/13 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
Laravel中常见的错误与解决方法小结
2016/08/30 Javascript
让编辑器支持word复制黏贴、截屏的js代码
2016/10/17 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
js获取浏览器和屏幕的各种宽度高度
2017/02/22 Javascript
在Vue-cli里应用Vuex的state和mutations方法
2018/09/16 Javascript
laydate时间日历插件使用方法详解
2018/11/14 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
2019/11/09 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
2020/07/28 Javascript
python利用有道翻译实现"语言翻译器"的功能实例
2017/11/14 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
python selenium 获取标签的属性值、内容、状态方法
2018/06/22 Python
python中matplotlib条件背景颜色的实现
2019/09/02 Python
Django 5种类型Session使用方法解析
2020/04/29 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
2020/10/21 Python
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
美国便宜的横幅和标志印刷在线:Best of Signs
2019/05/29 全球购物
大码女装:Ulla Popken
2019/08/06 全球购物
德国咖啡批发商:Coffeefair
2019/08/26 全球购物
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
本科毕业生的求职信范文
2013/11/20 职场文书
应届生自我鉴定
2013/12/11 职场文书
先进班级集体事迹材料
2014/01/30 职场文书
使用css样式设计一个简单的html登陆界面的实现
2021/03/30 HTML / CSS
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript
redis 解决库存并发问题实现数量控制
2022/04/08 Redis