单链表反转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的加密模块md5、sha、crypt使用实例
Sep 28 Python
python 把数据 json格式输出的实例代码
Oct 31 Python
Python+matplotlib+numpy绘制精美的条形统计图
Jan 02 Python
Python回文字符串及回文数字判定功能示例
Mar 20 Python
python中的变量如何开辟内存
Jun 26 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
Aug 31 Python
详解重置Django migration的常见方式
Feb 15 Python
Django中modelform组件实例用法总结
Feb 10 Python
Python实现异步IO的示例
Nov 05 Python
python3 kubernetes api的使用示例
Jan 12 Python
浅谈Python基础之列表那些事儿
May 11 Python
Python爬虫入门案例之爬取二手房源数据
Oct 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
PHP getallheaders无法获取自定义头(headers)的问题
2016/03/23 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
2020/04/27 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/02/09 Javascript
XML的代替者----JSON
2007/07/21 Javascript
基于jquery的一个浮动框(扩展性比较好 )
2010/08/27 Javascript
javascript内存管理详细解析
2013/11/11 Javascript
jQuery验证元素是否为空的两种常用方法
2015/03/17 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
2015/04/07 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
JavaScript获取图片像素颜色并转换为box-shadow显示
2016/03/11 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
2016/11/30 Javascript
JavaScript中三种常见的排序方法
2017/02/24 Javascript
angularjs 获取默认选中的单选按钮的value方法
2018/02/28 Javascript
vue指令之表单控件绑定v-model v-model与v-bind结合使用
2019/04/17 Javascript
ES6 Iterator遍历器原理,应用场景及相关常用知识拓展详解
2020/02/15 Javascript
Python中字典的基本知识初步介绍
2015/05/21 Python
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
python 读入多行数据的实例
2018/04/19 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
使用PyQt4 设置TextEdit背景的方法
2019/06/14 Python
Django之创建引擎索引报错及解决详解
2019/07/17 Python
为什么说Python可以实现所有的算法
2019/10/04 Python
Python sorted排序方法如何实现
2020/03/31 Python
python写文件时覆盖原来的实例方法
2020/07/22 Python
python爬虫请求头设置代码
2020/07/28 Python
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
如何保障Web服务器安全
2014/05/05 面试题
2014年班主任自我评价范文
2014/04/23 职场文书
跑操口号
2014/06/12 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫
我的收音机情缘
2022/04/05 无线电
使用Python开发冰球小游戏
2022/04/30 Python