当前位置: 首页 > news >正文

反转链表(LeetCode)

题目

给你单链表的头节点head,请你反转链表,并返回反转后的链表

解题

class ListNode:def __init__(self, value=0, next=None):self.value = valueself.next = nextdef reverse_linked_list_recursive(head: ListNode) -> ListNode:# 空链表或单节点链表if not head or not head.next:return head# 递归反转子链表new_head = reverse_linked_list_recursive(head.next)# 处理当前节点head.next.next = headhead.next = Nonereturn new_head# 辅助函数:创建链表
def create_linked_list(elements):if not elements:return Nonereturn ListNode(elements[0], create_linked_list(elements[1:]))# 辅助函数:打印链表
def print_linked_list(head: ListNode):current = headwhile current:print(current.value, end=" -> " if current.next else "\n")current = current.next# 测试代码
if __name__ == '__main__':# 创建链表: 1 -> 2 -> 3 -> 4 -> 5elements = [1, 2, 3, 4, 5]head = create_linked_list(elements)print("原始链表:")print_linked_list(head)reversed_head = reverse_linked_list_recursive(head)print("反转后的链表:")print_linked_list(reversed_head)

 原始链表:
1 -> 2 -> 3 -> 4 -> 5
反转后的链表:
5 -> 4 -> 3 -> 2 -> 1

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 重燃代码之光:在PyCharm中恢复自动高亮的秘籍
  • Linux系统中的高级内核模块调试技术
  • override的作用和好处
  • Yarn:一个快速、可靠且安全的JavaScript包管理工具
  • 日期类的习题
  • 2024华数杯C题解题思路、参考论文已出(无偿分享)~
  • [QT开发_音乐播放器项目笔记01]
  • PyFilesystem2 - Python 操作文件系统
  • Django中的模型小总结:
  • 双指针算法
  • 力扣-200.岛屿数量
  • 广州城市信息模型(CIM)白皮书学习
  • 【iOS】暑假第二周——网易云APP 仿写
  • 【TwinCAT3教程】IEC61131-3编程基础
  • Yolov8添加ConvNetV1和V2模块
  • 77. Combinations
  • CentOS 7 防火墙操作
  • CSS3 变换
  • Hexo+码云+git快速搭建免费的静态Blog
  • Mysql5.6主从复制
  • scala基础语法(二)
  • 从零开始学习部署
  • 服务器之间,相同帐号,实现免密钥登录
  • 关于extract.autodesk.io的一些说明
  • 技术发展面试
  • Java数据解析之JSON
  • 阿里云ACE认证之理解CDN技术
  • ​低代码平台的核心价值与优势
  • #HarmonyOS:Web组件的使用
  • #window11设置系统变量#
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (03)光刻——半导体电路的绘制
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (vue)页面文件上传获取:action地址
  • (二)hibernate配置管理
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (微服务实战)预付卡平台支付交易系统卡充值业务流程设计
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (译)计算距离、方位和更多经纬度之间的点
  • (转载)(官方)UE4--图像编程----着色器开发
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • *Django中的Ajax 纯js的书写样式1
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .net 托管代码与非托管代码
  • .Net下的签名与混淆
  • .Net小白的大学四年,内含面经
  • .NET正则基础之——正则委托
  • .NET中GET与SET的用法
  • .net专家(张羿专栏)
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • /bin、/sbin、/usr/bin、/usr/sbin
  • [@Controller]4 详解@ModelAttribute