单链表反转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检测lvs real server状态
Jan 22 Python
利用Pandas 创建空的DataFrame方法
Apr 08 Python
修复 Django migration 时遇到的问题解决
Jun 14 Python
django框架实现一次性上传多个文件功能示例【批量上传】
Jun 19 Python
pycharm new project变成灰色的解决方法
Jun 27 Python
基于python3监控服务器状态进行邮件报警
Oct 19 Python
python隐藏类中属性的3种实现方法
Dec 19 Python
tensorflow对图像进行拼接的例子
Feb 05 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
Feb 07 Python
基于opencv的selenium滑动验证码的实现
Jul 24 Python
Pyecharts 中Geo函数常用参数的用法说明
Feb 01 Python
Python中基础数据类型 set集合知识点总结
Aug 02 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初学者头痛的十四个问题
2006/07/12 PHP
PHP编程中的__clone()方法使用详解
2015/11/27 PHP
javascript函数以及基础写法100多条实用整理
2013/01/13 Javascript
百度移动版的url编码解码示例
2014/04/29 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
详解nodeJS之路径PATH模块
2017/05/31 NodeJs
javascript流程控制语句集合
2017/09/18 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
2017/10/31 Javascript
Vue项目中跨域问题解决方案
2018/06/05 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
2019/05/18 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
vue.js实现简单购物车功能
2020/05/30 Javascript
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
Python编程中实现迭代器的一些技巧小结
2016/06/21 Python
python虚拟环境virtualenv的使用教程
2017/10/20 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
python实现随机漫步算法
2018/08/27 Python
Pandas读取并修改excel的示例代码
2019/02/17 Python
Python3.5字符串常用操作实例详解
2019/05/01 Python
Python生成指定数量的优惠码实操内容
2019/06/18 Python
解决python3 安装不了PIL的问题
2019/08/16 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
美国最大最全的亚洲购物网站:美国亚米网(Yamibuy)
2020/05/05 全球购物
公证书样本
2014/04/10 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
关于旅游的活动方案
2014/08/15 职场文书
励志演讲稿500字
2014/08/21 职场文书
停课通知书
2015/04/24 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
创业计划书之养殖业
2019/10/11 职场文书
简单聊聊TypeScript只读修饰符
2022/04/06 Javascript
分析SQL窗口函数之聚合窗口函数
2022/04/21 Oracle