文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python单链表如何反转

2023-06-30 12:16

关注

这篇文章主要介绍“python单链表如何反转”,在日常操作中,相信很多人在python单链表如何反转问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python单链表如何反转”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

代码如下:

class Node(object):    def __init__(self, elem, next_=None):        self.elem = elem        self.next = next_ def reverseList(head):    if head == None or head.next==None:  # 若链表为空或者仅一个数就直接返回        return head     pre = None    next = None    while(head != None):         next = head.next     # 1        head.next = pre     # 2        pre = head      # 3        head = next      # 4    return preif __name__ == '__main__':    l1 = Node(3)    # 建立链表3->2->1->9->None    l1.next = Node(2)    l1.next.next = Node(1)    l1.next.next.next = Node(9)    l = reverseList(l1)    print (l.elem, l.next.elem, l.next.next.elem, l.next.next.next.elem)

原始单链表:

python单链表如何反转

反转后单链表:

python单链表如何反转

反转过程如下:

python单链表如何反转

next = head.next
将 head.next 赋值给 next 变量,即next 指向了节点2,先将节点2 保存起来。

head.next = pre (初始pre==None)
将 pre 变量赋值给 head.next,即 此时节点1 指向了 None

pre = head
将 head 赋值给了 pre,即 pre 指向节点1,将节点1 设为“上一个节点”

head = next
将 next 赋值给 head,即 head 指向了节点2,此时节点2 设为“头节点”

第一次循环完毕,进入第二次循环,如下图:

python单链表如何反转

next = head.next
将 head.next 赋值给 next 变量,即 next 指向了节点3,先将节点3 保存起来。

head.next = pre (此时的pre已经不为None)
将 pre 赋值给 head.next,pre 在上一次循环的时候指向了节点1,那么这一步的意义就是节点2 指向了 节点1,完成1和2节点的反转。

pre = head
将 head 赋值给了 pre,即 pre 指向节点2,将节点2 设为“上一个节点”

head = next
将 next 赋值给 head,即 head 指向了节点3。此时节点3 设为“头节点”

第二次循环完毕,以此类推!第三次第四次第五次循环。最后反转成如下图

python单链表如何反转

若干注意点:

(1)帮助记忆图:

python单链表如何反转

(2)当前头节点的下一个节点一定要保存(比如:当前头节点为2,先将节点3 保存起来)

(3)实现反转的key point: head.next = pre

到此,关于“python单链表如何反转”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯