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

Leetcode-206.反转链表

image.png

  • 思路概述

    • 利用栈的 先进后出(LIFO) 特性,先顺序遍历链表,把所有节点压入栈;

    • 弹出栈顶节点时正好是原链表的尾节点,依次连接即可得到反转链表。

  • 具体步骤

    1. 初始化空栈 st

    2. 遍历链表 head,将每个节点压入栈中;

    3. 栈顶弹出节点作为新链表头 new_head,并维护一个可移动尾指针 cur

    4. 每次出栈一个节点:

      • 先断开该节点原来的 next(防止形成环);

      • 接在新链表尾部 cur.next = node

      • 移动尾指针 cur = node

    5. 循环结束后,cur.next = None 并返回 new_head

复杂度分析

  • 时间复杂度:O(n),遍历一次压栈,一次出栈;

  • 空间复杂度:O(n),栈存储了全部节点引用。

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = nextclass Solution:def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:p=headst=[]while p!=None:st.append(p)p=p.nextdummy = ListNode(0)tail = dummywhile st:node=st.pop()tail.next=nodetail=nodetail.next = Nonereturn dummy.next
http://www.lryc.cn/news/606403.html

相关文章:

  • 【前端知识】JS单线程模型深入解析
  • LangGraph认知篇-Send机制
  • 掌握Python三大语句:顺序、条件与循环
  • 【生活系列】MBTI探索 16 种性格类型
  • springcloud04——网关gateway、熔断器 sentinel
  • 难以逾越的夏天
  • 【2025/07/31】GitHub 今日热门项目
  • Excel 知识点汇总
  • JavaScript内存管理完全指南:从入门到精通
  • ABS系统专用磁阻式汽车轮速传感器
  • ansible简单playbook剧本例子
  • RHEL 8.10 离线安装 Ansible 完整教程
  • 30天入门Python(基础篇)——第25天:标准库学习之OS模块
  • 设计模式:责任链模式 Chain of Responsibility
  • Qt_Gif_Creator 基于Qt的屏幕gif录制工具
  • 网关冗余技术VRRP的原理与配置
  • React开发依赖分析
  • Coze Studio 部署与使用常见问题全解析
  • 电子电气架构 --- 车载48V系统
  • SQL理解——INNER JOIN
  • LLM残差流为何会超过1?
  • 五、cv::SparseMat的介绍和使用
  • CHI - Transaction介绍(1) - Dataless
  • MySQL 中 CHAR 和 VARCHAR 类型有什么区别?
  • 化学结构式解读指南:从基础认知到InDraw智能识别
  • TDengine 中 TDgp 中添加算法模型(预测分析)
  • 智慧城市多源监控协同精度↑28%:陌讯多模态融合算法实战解析
  • Git 详细安装配置教程(Windows版)
  • QT5 widget控件设置背景图不生效的解决方案
  • systmctl的作用,使用场景和用法