news 2026/8/7 22:32:25

day130—链表—反转链表(LeetCode-206)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
day130—链表—反转链表(LeetCode-206)

题目描述

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

示例 1:

输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]

示例 2:

输入:head = [1,2]输出:[2,1]

示例 3:

输入:head = []输出:[]

提示:

  • 链表中节点的数目范围是[0, 5000]
  • -5000 <= Node.val <= 5000

解决方案:

这段代码的核心功能是反转一个单链表(将链表的节点指向全部倒置,比如原链表 1→2→3→null 变为 3→2→1→null),采用「迭代法」实现,时间复杂度为O(n)n为链表节点数),空间复杂度为O(1)(仅使用常量级额外空间),是反转单链表的经典高效解法。

核心逻辑

代码通过维护三个指针(precurnxt),逐个改变节点的指向,全程只需一次遍历:

  1. 指针初始化prenullptr(表示当前节点的前一个节点,初始无),cur指向链表头节点(待处理的当前节点),nxt暂存当前节点的下一个节点;
  2. 迭代反转:循环处理每个节点,直到curnullptr(遍历完所有节点):
    • 先用nxt保存cur->next(防止反转指向后丢失后续节点);
    • cur->next指向pre(完成当前节点的反转);
    • pre移动到cur(成为下一个节点的 “前节点”);
    • cur移动到nxt(处理下一个节点);
  3. 返回结果:循环结束时,pre指向原链表的最后一个节点(即反转后链表的头节点),返回pre即可。

总结

  1. 核心思路:通过三个指针 “接力”,逐个反转节点指向,避免递归带来的额外空间开销;
  2. 关键操作:每次反转前用nxt保存后续节点,是防止链表断裂的核心;
  3. 效率特点:一次遍历完成反转,时间O(n)、空间O(1),是反转单链表的最优解法之一。

函数源码:

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */ class Solution { public: ListNode* reverseList(ListNode* head) { ListNode* pre=nullptr; ListNode* cur=head; ListNode* nxt=nullptr; while(cur){ nxt=cur->next; cur->next=pre; pre=cur; cur=nxt; } return pre; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 16:53:03

手把手理解I2C时序的物理层工作过程

深入IC物理层&#xff1a;从波形到实战&#xff0c;彻底搞懂时序如何“走”你有没有遇到过这样的情况&#xff1f;明明代码写得和例程一模一样&#xff0c;传感器地址也核对了三遍&#xff0c;可STM32就是收不到ACK&#xff1b;或者示波器上看到SDA在跳&#xff0c;但数据总是错…

作者头像 李华
网站建设 2026/8/5 1:33:03

DeepSeek-OCR部署案例:物流运单识别系统3天落地

DeepSeek-OCR部署案例&#xff1a;物流运单识别系统3天落地 1. 项目背景与技术选型 1.1 物流行业单据处理的痛点 在现代物流体系中&#xff0c;每日产生海量纸质或扫描版运单&#xff0c;涵盖发货信息、收货人地址、商品明细、重量体积等关键数据。传统人工录入方式不仅效率…

作者头像 李华
网站建设 2026/8/7 14:09:08

从0开始学SAM 3:小白也能懂的图像分割教程

从0开始学SAM 3&#xff1a;小白也能懂的图像分割教程 1. 引言 1.1 学习目标 随着人工智能在视觉领域的深入发展&#xff0c;图像和视频分割技术正逐步走向“零门槛”应用。本教程面向初学者&#xff0c;旨在帮助你从零开始掌握 SAM 3&#xff08;Segment Anything Model 3&…

作者头像 李华
网站建设 2026/8/7 15:41:58

Kronos金融大模型:开启智能投资决策新时代

Kronos金融大模型&#xff1a;开启智能投资决策新时代 【免费下载链接】Kronos Kronos: A Foundation Model for the Language of Financial Markets 项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos 在当今瞬息万变的金融市场中&#xff0c;传统量化模…

作者头像 李华