加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python 单链表翻转的简单示例

发布时间:2020-12-17 17:48:08 所属栏目:Python 来源:网络整理
导读:感兴趣python 单链表翻转的简单示例的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧。br # 编程之家 (jb51.cc) #!/usr/bin/env python#coding = utf-8class Node: def __init__(self,data=None,next = None): self.data = data self.next = next def r
感兴趣python 单链表翻转的简单示例的小伙伴,下面一起跟随编程之家 52php.cn的小编来看看吧。<br>
 #  编程之家  (52php.cn) 

#!/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.笔记 52php.cn
 
解释一下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做好了准备

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读