单链表反转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使用urllib2提交http post请求的方法
May 26 Python
使用Python写个小监控
Jan 27 Python
Python函数中的函数(闭包)用法实例
Mar 15 Python
详解Python中的__getitem__方法与slice对象的切片操作
Jun 27 Python
python读取文本绘制动态速度曲线
Jun 21 Python
python实现图片识别汽车功能
Nov 30 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
May 27 Python
python matplotlib实现双Y轴的实例
Feb 12 Python
python爬虫刷访问量 2019 7月
Aug 01 Python
Python求平面内点到直线距离的实现
Jan 19 Python
pytorch 限制GPU使用效率详解(计算效率)
Jun 27 Python
如何在VSCode下使用Jupyter的教程详解
Jul 13 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 magic_quotes_gpc的一点认识与分析
2008/08/18 PHP
php中定时计划任务的实现原理
2013/01/08 PHP
PHP递归删除目录几个代码实例
2014/04/21 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
PHP实现的折半查询算法示例
2017/10/09 PHP
phpStorm2020 注册码
2020/09/17 PHP
经典的解除许多网站无法复制文字的绝招
2006/12/31 Javascript
Js 刷新框架页的代码
2010/04/13 Javascript
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
2010/10/22 Javascript
js 中{},[]中括号,大括号使用详解
2011/05/12 Javascript
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
js添加table的行和列 具体实现方法
2013/07/22 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
2016/08/24 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
Nodejs下DNS缓存问题浅析
2016/11/16 NodeJs
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
2017/02/08 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
移动端手指放大缩小插件与js源码
2017/05/22 Javascript
JavaScript学习总结之正则的元字符和一些简单的应用
2017/06/30 Javascript
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
2018/09/14 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
小程序数据通信方法大全(推荐)
2019/04/15 Javascript
JavaScript原型式继承实现方法
2019/11/06 Javascript
Python模拟百度登录实例详解
2016/01/20 Python
Python有序字典简单实现方法示例
2017/09/28 Python
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
Chemist Warehouse官方海外旗舰店:澳洲第一连锁大药房
2017/08/25 全球购物
阿联酋电子产品购物网站:Menakart
2017/09/15 全球购物
Topshop法国官网:英国快速时尚品牌
2018/04/08 全球购物
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
Bluebella法国官网:英国性感内衣品牌
2019/05/03 全球购物
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
大专自我鉴定范文
2013/10/23 职场文书
会计毕业自我鉴定
2014/02/05 职场文书