单链表反转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 相关文章推荐
教你如何在Django 1.6中正确使用 Signal
Jun 22 Python
Python中处理时间的几种方法小结
Apr 09 Python
python实现嵌套列表平铺的两种方法
Nov 08 Python
python实现合并两个排序的链表
Mar 03 Python
numpy.where() 用法详解
May 27 Python
用python建立两个Y轴的XY曲线图方法
Jul 08 Python
Django基础知识 web框架的本质详解
Jul 18 Python
Python远程开发环境部署与调试过程图解
Dec 09 Python
详解python UDP 编程
Aug 24 Python
pytorch显存一直变大的解决方案
Apr 08 Python
Python自动化测试PO模型封装过程详解
Jun 22 Python
Python中的 enumerate和zip详情
May 30 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 Memcache 中实现消息队列
2009/11/24 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
2014/11/22 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
2014/11/28 PHP
PHP加密解密类实例分析
2015/04/20 PHP
php批量转换文件夹下所有文件编码的函数类
2017/08/06 PHP
jQuery实现原理的模拟代码 -6 代码下载
2010/08/16 Javascript
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
js中window.open的参数及注意注意事项
2016/07/06 Javascript
js 自带的 map() 方法全面了解
2016/08/16 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
微信小程序实现拼图小游戏
2020/10/22 Javascript
python的文件操作方法汇总
2017/11/10 Python
python 重命名轴索引的方法
2018/11/10 Python
python简单贪吃蛇开发
2019/01/28 Python
Python 转换RGB颜色值的示例代码
2019/10/13 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
Python for i in range ()用法详解
2020/09/18 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
Python实现将元组中的元素作为参数传入函数的操作
2020/06/05 Python
python如何查看网页代码
2020/06/07 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
Bowflex美国官方网站:高级家庭健身器材
2017/12/22 全球购物
电子商务专业实习生自我鉴定
2013/09/24 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
物业管理专业自荐信
2014/07/01 职场文书
家庭贫困证明
2014/09/23 职场文书
2014党员干部四风问题对照检查材料思想汇报
2014/09/24 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
会计工作总结范文2014
2014/12/23 职场文书
求职信:会计求职的写作技巧
2019/04/24 职场文书
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python