单链表反转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 相关文章推荐
Win7上搭建Cocos2d-x 3.1.1开发环境
Jul 03 Python
在主机商的共享服务器上部署Django站点的方法
Jul 22 Python
python 中的divmod数字处理函数浅析
Oct 17 Python
浅析Python pandas模块输出每行中间省略号问题
Jul 03 Python
Python实现基于PIL和tesseract的验证码识别功能示例
Jul 11 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
Jan 15 Python
python读取并定位excel数据坐标系详解
Jun 26 Python
Python实现代码块儿折叠
Apr 15 Python
Python 找出出现次数超过数组长度一半的元素实例
May 11 Python
django为Form生成的label标签添加class方式
May 20 Python
Python join()函数原理及使用方法
Nov 14 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
Dec 16 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
mysql limit查询优化分析
2008/11/12 PHP
PHP 显示客户端IP与服务器IP的代码
2010/10/12 PHP
php 获取百度的热词数据的代码
2012/02/18 PHP
php中常用的预定义变量小结
2012/05/09 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
angularJS提交表单(form)
2015/02/09 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
异步JS框架的作用以及实现方法
2015/10/29 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
js实现数组冒泡排序、快速排序原理
2016/03/08 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
浅谈react+es6+webpack的基础配置
2017/08/09 Javascript
javascript中神奇的 Date对象小结
2017/10/12 Javascript
JS面向对象的程序设计相关知识小结
2018/05/26 Javascript
微信小程序实现获取准确的腾讯定位地址功能示例
2019/03/27 Javascript
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
[02:40]DOTA2殁境神蚀者 英雄基础教程
2013/11/26 DOTA
Python实现对PPT文件进行截图操作的方法
2015/04/28 Python
对Python中plt的画图函数详解
2018/11/07 Python
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
幼师自我鉴定范文
2013/10/01 职场文书
模范家庭事迹材料
2014/02/10 职场文书
2014年汽车销售工作总结
2014/12/01 职场文书
清洁工岗位职责
2015/02/13 职场文书
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python
nginx请求限制配置方法
2021/07/09 Servers
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python
如何通过cmd 连接阿里云服务器
2022/04/18 Servers
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL