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

力扣热题100之反转链表

题目

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
在这里插入图片描述

代码

方法一:

重点需要理解的是正确翻转的流程:在链表未被破坏之前保留cur的下一个节点信息->改变cur.next的指向->更新prev的位置->更新cur

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:           cur=head   prev=None while cur:Next=cur.next # 首先应该保存下一个节点cur.next=prev # 然后翻转prev=cur # 然后更新precur=Next # 然后将cur指向没有被改变的下一个节点return prev  # 返回翻转之后的链表的头节点    

方法二:递归

主要在于理解什么是递归,递归是怎么运行的,之前上课的时候老师说的一个比喻就是:递归就向打开一扇扇门,到最后一扇之后又从最后一扇门开始关门。也就是说这个代码中就是先反复调用reverseList函数到链表的最后一个元素(满足结束条件),执行head.next.next=head, head.next=None这两句代码,然后轮到倒数第二个元素进行上述操作……
假设原链表:1 -> 2 -> 3 -> 4 -> 5
递归过程:

  1. 递归至节点5,返回5。
  2. 节点4处理:5->4->None。
  3. 节点3处理:5->4->3->None。
  4. 节点2处理:5->4->3->2->None。
  5. 节点1处理:5->4->3->2->1->None。
    最终链表:5 ->4 ->3 ->2 ->1
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:           if head==None or head.next==None:return headnew_head=self.reverseList(head.next)head.next.next=headhead.next=Nonereturn new_head

相关文章:

  • vue3 element-plus 输入框回车跳转页面问题处理
  • 《Python星球日记》 第43天:机器学习概述与Scikit-learn入门
  • 协方差与皮尔逊相关系数:从定义到应用的全面解析
  • Coze平台 搭建「AI美食视频制作工作流」的详细实现方案
  • Java消息队列性能优化实践:从理论到实战
  • JVM的双亲委派模型
  • Spark 之 YarnCoarseGrainedExecutorBackend
  • Kubernetes学习笔记
  • Python训练营打卡——DAY18(2025.5.7)
  • 按拼音首字母进行排序组成新的数组(vue)
  • Prometheus实战教程:k8s平台-Redis监控案例
  • MySQL-数据查询(多表连接JOIN)-04-(11-2)
  • Go——项目实战
  • Kotlin zip 函数的作用和使用场景
  • 【纯小白博客搭建】Hugo+Github博客部署及主题(stack)美化等界面优化记录
  • DELL R770 服务器,更换OCP模块!
  • 使用 Java 11 的 HttpClient 处理 RESTful Web 服务
  • LLM :Function Call、MCP协议与A2A协议
  • 「Mac畅玩AIGC与多模态24」开发篇20 - 多语言输出工作流示例
  • 面试算法刷题练习1(核心+acm)
  • 印巴战火LIVE丨“快速接近战争状态”?印度袭击巴军事基地,巴启动反制军事行动
  • 图集|俄罗斯举行纪念苏联伟大卫国战争胜利80周年阅兵式
  • 最快3天开通一条定制公交线路!上海推出服务平台更快响应市民需求
  • 重庆党政代表团在沪考察,陈吉宁龚正与袁家军胡衡华共商两地深化合作工作
  • 两部门发布山洪灾害气象预警:北京西部、河北西部等局地山洪可能性较大
  • 98岁动物学家、北京大学教授杨安峰逝世