python 单链表翻转的解决办法
内容摘要
这篇文章主要为大家详细介绍了python 单链表翻转的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣python 单链表翻转的简单示例的小伙伴,下面一起跟随php教程的小编
感兴趣python 单链表翻转的简单示例的小伙伴,下面一起跟随php教程的小编
文章正文
这篇文章主要为大家详细介绍了python 单链表翻转的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣python 单链表翻转的简单示例的小伙伴,下面一起跟随php教程的小编罗X来看看吧。<br>
# php教程网 (www.idcnote.com)
#!/usr/bin/env python
#coding = utf-8
class Node:
def __init__(self,data=None,next = None):
self.data = data
self.next = next
def rev(link):
pre = link
cur = link.next
pre.next = None
while cur:
temp = cur.next
cur.next = pre
pre =cur
cur = temp
return pre
if __name__ == '__main__':
link = Node(1, Node(2, Node(3, Node(4, Node(5, Node(6, Node(7, Node(8, Node(9)))))))))
root = rev(link)
while root:
print(root.data)
root =root.next
# End 512.笔记 www.idcnote.com
解释一下rev函数的实现过程:line 9-11是将原链表的第一个节点变成了新链表的最后一个节点,同时将原链表的第二个节点保存在cur中line13-16就是从原链表的第二个节点开始遍历到最后一个节点,将所有节点翻转一遍以翻转第二个节点为例temp = cur.next是将cur的下一个节点保存在temp中,也就是第节点3,因为翻转后,节点2的下一个节点变成了节点1,原先节点2和节点3之间的连接断开,通过节点2就找不到节点3了,因此需要保存cur.next = pre就是将节点2的下一个节点指向了节点1然后pre向后移动到原先cur的位置,cur也向后移动一个节点,也就是pre = cur ,cur =temp这种就为翻转节点3做好了准备
注:关于python 单链表翻转的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释