千家信息网

python单链表如何反转

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍"python单链表如何反转",在日常操作中,相信很多人在python单链表如何反转问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"python单链表如何
千家信息网最后更新 2025年11月07日python单链表如何反转

这篇文章主要介绍"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)

原始单链表:

反转后单链表:

反转过程如下:

第一步: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 设为"头节点"

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

第一步: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 设为"头节点"

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

若干注意点:

(1)帮助记忆图:

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

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

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

节点 指向 循环 学习 变量 先将 帮助 更多 次第 原始 实用 以此类推 接下来 个数 代码 就是 意义 文章 方法 时候 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 我的电脑里没有服务器管理器 陕西小城优学互联网科技有限公司 163169邮箱的服务器 时序数据库查询效率 python网络安全知识 软件开发培训学校微信怎么修改 自动打分数据库 销售数据库编程软件多少钱 2017网络安全宣传月 计算机网络技术可在哪里就业 南瑞网络安全监管平台 宁夏网络安全宣传日 山东办公系统软件开发哪家实惠 政府和企业的网络安全信息 网络安全hw代表什么 网络安全管理员四级(中级)题库 网络安全职业资格证租赁 开展网络安全保密教育简报 配电自动化网络安全培训 青之峰网络技术有限公司 南京市秦淮区张来明软件开发 美团软件开发实习招聘流程 怎么看网站的数据库 计算机网络技术转软件技术 保证网络安全最重要的核心 豆瓣服务器多大 海康智能多媒体服务器 网络安全常识一书推荐理由 数据库怎么在标题下添加内容 目前的数据库
0