单链表反转python实现代码示例

 更新时间:2018年02月08日 11:07:53   作者:零丁若叹  
这篇文章主要介绍了单链表反转python实现,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

单链表的反转可以使用循环,也可以使用递归的方式

1.循环反转单链表

循环的方法中,使用pre指向前一个结点,cur指向当前结点,每次把cur->next指向pre即可。

代码:

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 pandas 重命名索引和列名称的实现

    Python pandas 重命名索引和列名称的实现

    本文主要介绍了Python pandas 重命名索引和列名称的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • python全局解释器GIL锁机制详解

    python全局解释器GIL锁机制详解

    我们要知道一点GIL并不是Python的特性,它是Python解释器Cpython引入的一个概念,下面这篇文章主要给大家介绍了关于python全局解释器GIL锁机制的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • 在CMD窗口中调用python函数的实现

    在CMD窗口中调用python函数的实现

    本文主要介绍了在CMD窗口中调用python函数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • python如何爬取个性签名

    python如何爬取个性签名

    这篇文章主要为大家详细介绍了pythonx抓取个性签名的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Python 备份程序代码实现

    Python 备份程序代码实现

    这篇文章主要介绍了Python 备份程序代码实现的相关资料,需要的朋友可以参考下
    2017-03-03
  • Python实现随机生成迷宫并自动寻路

    Python实现随机生成迷宫并自动寻路

    最近在学习Python,正好今天在学习随机数,本文实现了Python实现随机生成迷宫并自动寻路,感兴趣的可以了解一下
    2021-06-06
  • Python列表去重的几种方法整理

    Python列表去重的几种方法整理

    这篇文章介绍了Python列表去重的几种方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 跟老齐学Python之玩转字符串(3)

    跟老齐学Python之玩转字符串(3)

    字符串是一个很长的话题,纵然现在开始第三部分,但是也不能完全说尽。因为字符串是自然语言中最复杂的东西,也是承载功能最多的,计算机高级语言编程,要解决自然语言中的问题,让自然语言中完成的事情在计算机上完成,所以,也不得不有更多的话题。
    2014-09-09
  • Python海象运算符的用法教程

    Python海象运算符的用法教程

    Python 海象运算符是在 PEP 572 中提出,并在 Python3.8 版本并入和发布。本文就来为大家详细讲讲Python海象运算符的用法,感兴趣的可以了解一下
    2022-07-07
  • 使用Python为Excel文件添加预设和自定义文档属性

    使用Python为Excel文件添加预设和自定义文档属性

    向Excel文件添加文档属性是专业地组织和管理电子表格数据的关键步骤,这些属性,如标题、作者、主题和关键词,增强了文件的元数据,使得在大型数据库或文件系统中跟踪变得更加容易,本文将介绍如何使用Python高效地为Excel文件添加文档属性,需要的朋友可以参考下
    2024-05-05

最新评论