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

【DAY 1.数据结构之反转链表1.牛客网BM1】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、对于一整串完整链表的反转
  • 二、使用步骤
    • 1.引入库
  • 总结

前言

对数据结构的重新学习,这是在牛客网上找的简单题中的对数据结构中链表的反转。


一、对于一整串完整链表的反转

示例:给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。

数据范围:
0≤𝑛≤1000 0≤n≤1000
要求:空间复杂度 𝑂(1) ,时间复杂度 𝑂(𝑛)

二、使用步骤

1.引入库

代码如下(示例):
方法一:运用三个指针

structListNode*ReverseList(structListNode*head){structListNode*first=NULL;structListNode*second=head;structListNode*third;while(second!=NULL){third=second->next;second->next=first;first=second;second=third;}returnfirst;

方法二:递归法。
一直递,直到head=2,head->next=3,newhead=3,
现在解释对head->next->next=head的理解:
head->next=3,然后3的下一个指向2,即3->2,
为了防止成为一个环,将2的下一个指向NULL。

structListNode*ReverseList(structListNode*head){if(head==NULL||head->next==NULL){returnhead;}structListNode*newhead=ReverseList(head->next);head->next->next=head;head->next=NULL;returnnewhead;}

方法三:新建虚拟头节点,遍历原链表,把每一个节点都头插到虚拟节点后。

structListNode*ReverseList(structListNode*head){structListNode*newhead=NULL;structListNode*p;while(head!=0){p=head;//将头节点存到p里面head=head->next;//向后移动p->next=newhead;//将当前遍历节点放到新头节点后面newhead=p;//当前节点作为新头节点}returnnewhead;}

总结

提示:这里对文章进行总结:
本文介绍了三种反转链表的方法,

http://www.jsqmd.com/news/773611/

相关文章:

  • 多智能体协作框架:AI驱动的软件开发团队自动化实践
  • OpenCore Legacy Patcher:突破苹果硬件限制的系统兼容性架构解析
  • Gemini3.1Pro一键生成高效教研方案
  • 氢燃料微型燃气轮机增程系统建模及控制策略【附代码】
  • 开源中国的国产化突围:构建安全可控的智能研发生态体系
  • 分布式搜索引擎:Elasticsearch 从入门到实战
  • 高通全新骁龙芯片将大幅减少中端安卓手机卡顿现象
  • LTC3783 LED驱动控制器设计与效率优化详解
  • 嵌入式开发新利器:轻量级芯片包管理器vpm实战指南
  • BepInEx完整指南:5分钟掌握Unity游戏插件框架的安装与配置
  • PatreonDownloader终极指南:轻松备份Patreon付费内容的完整解决方案
  • 交互式学习平台Vibe-Learn:架构设计与实战搭建指南
  • 三维计算几何基础
  • 从DS18B20到BMI088:聊聊那些年我用过的传感器,以及如何为你的项目选型
  • 金融智能体开发实战:基于eforest-agent-skills构建领域专家Agent
  • Python科研绘图实践【13】——线性回归拟合图附代码
  • taotoken 的按 token 计费模式让实验性项目成本可控
  • STM32H7实战:用MPU给你的关键外设(如FMC)加把锁,防止程序跑飞误操作
  • 基于向量数据库与语义搜索的智能代码片段管理实践
  • AI工具搭建自动化视频生成LoHa
  • 基于异步IO与模块化设计的Python数据抓取框架Catclaw实战指南
  • 利用MCP协议与mcp-conf工具,为AI编程助手构建深度项目感知能力
  • 为什么Lumafly正在重新定义空洞骑士模组管理?5个颠覆传统认知的智能解决方案
  • 打工人PPT救星!一键制作工具大揭秘
  • Waydroid完整配置指南:在Linux系统上运行Android应用的容器化方案
  • AI数据流编排框架AirWeave:构建高效实时数据处理管道
  • 权限问题别一锅端:一次 OpenClaw lark-cli 飞书邮箱排障复盘
  • 终极指南:MelonLoader游戏模组加载器从入门到精通的全方位解决方案
  • 极简个人网站模板:原生HTML/CSS/JS构建高性能数字名片
  • 3步解锁Minecraft电影级光影:Revelation开源光影包完全指南