【第2题】 链表的逆置
链表是一个特殊的数据结构,其中每个节点包含自己的数据以及下一个值的引用(指针),链表的逆置就是指将链表下一个值的引用(指针)调换,如下图所示:
第一步 构造链表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Node( object ): def __init__( self , value, next ): self .value = value self . next = next head = Node( '头' , None ) last = head for i in range ( 5 ): node = Node( 'v%s' % i, None ) last. next = node last = node # ######### 查看链表关系 ########## print ( '原始链表信息为:' ) print (head.value) print (head. next .value) print (head. next . next .value) print (head. next . next . next .value) print (head. next . next . next . next .value) print (head. next . next . next . next . next .value) |
第二步 链表逆置
实现思路:
实现代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | def reverse_linked_list(head): """ 链表逆置 :param head: :return: """ if not head or not head. next : return head prev_node = None current_node = head next_node = head. next while True : current_node. next = prev_node if not next_node: break prev_node = current_node current_node = next_node next_node = current_node. next return current_node new_head = reverse_linked_list(head) print ( '逆置之后的链表' ) print (new_head.value) print (new_head. next .value) print (new_head. next . next .value) print (new_head. next . next . next .value) print (new_head. next . next . next . next .value) print (new_head. next . next . next . next . next .value) |

标签:
每天一道Python面试题
, Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)