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

【Python练习】039. 编写一个函数,反转一个单链表

039. 编写一个函数,反转一个单链表

  • 039. 编写一个函数,反转一个单链表
    • 方法 1:迭代实现
      • 运行结果
      • 代码解释
    • 方法 2:递归实现
      • 运行结果
      • 代码解释
    • 选择方法
      • 迭代法与递归法的区别

039. 编写一个函数,反转一个单链表

在 Python 中,可以通过迭代或递归的方式反转一个单链表。

方法 1:迭代实现

迭代方法通过逐个反转链表中的节点来实现反转。以下是迭代实现的代码:

class ListNode:"""定义链表的节点类。"""def __init__(self, value=0, next=None):self.value = valueself.next = nextdef reverse_linked_list(head):"""使用迭代方法反转单链表。参数:head (ListNode): 链表的头节点。返回:ListNode: 反转后的链表的头节点。"""prev = None  # 初始化前一个节点为 Nonecurrent = head  # 当前节点从头节点开始while current:next_node = current.next  # 保存下一个节点current.next = prev  # 反转当前节点的指针prev = current  # 前一个节点向前移动current = next_node  # 当前节点向前移动return prev  # 返回新的头节点# 测试代码
# 创建一个链表:1 -> 2 -> 3 -> 4
node1 = ListNode(1)
node2 = ListNode(2)
node3 = ListNode(</
http://www.lryc.cn/news/586132.html

相关文章:

  • Linux系统使用Verdaccio搭建Npm私服
  • 初学者关于算法复杂度的学习笔记
  • python数据分析及可视化课程介绍(01)以及统计学的应用、介绍、分类、基本概念及描述性统计
  • 【Datawhale AI 夏令营】 用AI做带货视频评论分析(二)
  • 使用Java完成下面程序
  • 13. https 是绝对安全的吗
  • Spring AOP 是如何生效的(入口源码级解析)?
  • 基于Java的Markdown到Word文档转换工具的实现
  • 码头智能哨兵:AI入侵检测系统如何终结废钢盗窃困局
  • DirectX Repair修复工具下载,.NET修复,DirectX修复
  • 贪心算法题解——跳跃游戏 II【LeetCode】
  • 电商订单数据分析全流程:从数据处理到可视化洞察
  • AI产品经理面试宝典第11天:传统软件流程解析与AI产品创新对比面试题与答法
  • 网络连接:拨号连接宽带PPPOE
  • 维基艺术图片: python + scrapy 爬取图片
  • 物联网设备数据驱动3D模型的智能分析与预测系统
  • 深入理解 QSettings:Qt 中的应用程序配置管理
  • 多线程的区别和联系
  • SQL server之版本的初认知
  • linux系统----LVS负载均衡集群(NET/DR)模式
  • docker-compose方式搭建lnmp环境——筑梦之路
  • 【LeetCode】算法详解#8 ---螺旋矩阵
  • .gitignore
  • JVM 类加载过程
  • 安全初级作业1
  • Docker-镜像构建原因
  • 十三、K8s自定义资源Operator
  • Java面试基础:面向对象(1)
  • 快速建立UI网站
  • 面试150 翻转二叉树