单链表反转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 相关文章推荐
python3.0 字典key排序
Dec 24 Python
python 正则式 概述及常用字符
May 07 Python
图文讲解选择排序算法的原理及在Python中的实现
May 04 Python
详谈python中冒号与逗号的区别
Apr 18 Python
解决Python网页爬虫之中文乱码问题
May 11 Python
Python实现Dijkstra算法
Oct 17 Python
使用python对文件中的数值进行累加的实例
Nov 28 Python
Python使用字典的嵌套功能详解
Feb 27 Python
Python Opencv实现图像轮廓识别功能
Mar 23 Python
Python 静态方法和类方法实例分析
Nov 21 Python
python实现启动一个外部程序,并且不阻塞当前进程
Dec 05 Python
python套接字socket通信
Apr 01 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
mysql5详细安装教程
2007/01/15 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
2019/08/23 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
Ctrl+Enter提交内容信息
2006/06/26 Javascript
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
禁用JavaScript控制台调试的方法
2014/03/07 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
JavaScript实现的双向跨域插件分享
2015/01/31 Javascript
Knockoutjs 学习系列(一)ko初体验
2016/06/07 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
React通过redux-persist持久化数据存储的方法示例
2019/02/14 Javascript
Vue实现圆环进度条的示例
2021/02/06 Vue.js
[42:32]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
Python reduce函数作用及实例解析
2020/05/08 Python
python和php哪个更适合写爬虫
2020/06/22 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
大学生毕业自我评价范文分享
2013/11/07 职场文书
高中的自我鉴定
2013/12/16 职场文书
社会实践感言
2014/01/25 职场文书
低碳生活倡议书
2014/04/14 职场文书
国旗下演讲稿
2014/05/08 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
导游词之丽江普济寺
2019/10/22 职场文书
golang http使用踩过的坑与填坑指南
2021/04/27 Golang
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫
小程序实现侧滑删除功能
2022/06/25 Javascript