单链表反转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的Flask框架中web表单的教程
Apr 20 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
Jan 20 Python
Numpy数组的保存与读取方法
Apr 04 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
Apr 18 Python
python3中获取文件当前绝对路径的两种方法
Apr 26 Python
python pandas 对时间序列文件处理的实例
Jun 22 Python
python腾讯语音合成实现过程解析
Aug 01 Python
Python.append()与Python.expand()用法详解
Dec 18 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
python中append函数用法讲解
Dec 11 Python
python 通过exifread读取照片信息
Dec 24 Python
20行代码教你用python给证件照换底色的方法示例
Feb 05 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 Image Resize图片大小调整的函数代码
2011/01/17 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
php实现模拟post请求用法实例
2015/07/11 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
php之可变变量的实例详解
2017/09/12 PHP
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
js字符串的各种格式的转换 ToString,Format
2011/08/08 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
JS版的date函数(和PHP的date函数一样)
2014/05/12 Javascript
jQuery的缓存机制浅析
2014/06/07 Javascript
js实现鼠标经过表格行变色的方法
2015/05/12 Javascript
不想让浏览器运行javascript脚本的方法
2015/11/20 Javascript
JavaScript手机振动API
2016/06/11 Javascript
Vue学习之路之登录注册实例代码
2017/07/06 Javascript
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
Vue+Java+Base64实现条码解析的示例
2020/09/23 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
[34:41]夜魇凡尔赛茶话会 第二期02:你画我猜
2021/03/11 DOTA
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
python实现端口转发器的方法
2015/03/13 Python
python optparse模块使用实例
2015/04/09 Python
利用Python批量提取Win10锁屏壁纸实战教程
2018/03/27 Python
python 提取文件指定列的方法示例
2019/08/07 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
实例讲解使用CSS实现多边框和透明边框的方法
2015/09/08 HTML / CSS
ASOS英国官网:英国在线时装和化妆品零售商
2017/05/19 全球购物
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
拾金不昧的表扬信
2014/01/16 职场文书
班主任寄语大全
2014/04/04 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
网络营销计划书
2015/01/17 职场文书
蜗居观后感
2015/06/11 职场文书
七年级思品教学反思
2016/02/20 职场文书