python单向链表反转_python实现单链表反转(经典笔试题)

https://blog.csdn.net/su_bao/article/details/81072849

0、说在前面的话

链表结构,说难不难,说易不易,一定要亲自编程实现一下。其次就是一定要耐心,慢慢去体会其中的道道,博主一开始也是有点懵逼的,后来仔细琢磨了一下终于搞明白了,相信聪明的你也一定可以,有问题可以留言交流。

1、单链表结构

2、反转的想法

建立三个变量,L、M、R互相赋值迭代,并建立指向关系,从而实现单链表的反转。

3、python代码实现

class Node(object):

def __init__(self, data, next=None):

self.val = data

self.next = next

def fun4(head):

if head == None:

return None

L,M,R = None,None,head

while R.next != None:

L = M

M = R

R = R.next

M.next = L

R.next = M

return R

#测试用例

if __name__ == '__main__':

l1 = Node(3)

l1.next = Node(2)

l1.next.next = Node(1)

l1.next.next.next = Node(9)

l = fun4(l1)

print (l.val, l.next.val, l.next.next.val, l.next.next.next.val)

---------------------

作者:su_bao

来源:CSDN

原文:https://blog.csdn.net/su_bao/article/details/81072849

版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值