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

反转链表链表数据结构oj题(206)

目录

题目描述:

题目分析:

代码解决:


题目描述:

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

题目分析:

对于反转这道题,我们学习了单链表的增删改查后,立马就能想到第一个思路就是,遍历单链表,再进行头插,遍历中嵌套头插函数,时间复杂度不会很大,也就是O(n)。为了方便代码的书写,我们第二个思路就是直接反转,顾名思义就是改变指针指向的地址。可以方便我们写代码,重点讲解一下第二个思路,先上图,再讲解将抽象具体化

设置3个指针,一个n1用来指向到对应节点中,n2用来表示需要改变指向节点反向的节点,n3用来表示衔接n2,使得n2往后走,进而继续改变指向。思路简单,但是也很抽象,代码的简单的代价就是抽象。

代码解决:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/typedef struct ListNode ListNode;
ListNode* reverseList(ListNode* head) {//考虑为空,防止空指针的解引用if (head == NULL){return NULL;}ListNode* n1, * n2, * n3;n1 = NULL; n2 = head; n3 = n2->next;//切换指向while (n2->next != NULL){n2->next = n1;n1 = n2;n2 = n3;n3 = n3->next;}//包括最后一项与链接n2->next = n1;n1 = n2;return n2;}

http://www.xdnf.cn/news/6738.html

相关文章:

  • Spring MVC 中请求处理流程及核心组件解析
  • 2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛) 解题报告 | 珂学家
  • React中useMemo和useCallback的作用:
  • 人工智能-状态空间-猴子摘香蕉
  • 从零实现一个高并发内存池 - 4
  • 中级网络工程师知识点3
  • 城市排水管网流量监测系统解决方案
  • HC32L190 串口驱动
  • [ linux-系统 ] 命令行参数 | 环境变量
  • 数据库--向量化基础
  • C++跨平台开发:突破不同平台的技术密码
  • 从硬件角度理解“Linux下一切皆文件“,详解用户级缓冲区
  • 增量学习:机器学习领域中的资源高效利用秘籍
  • HTTPS 加密原理
  • 编译原理概述
  • 将three.js场景保存成图片
  • IEEE PRMVAI 2025 IEEE PRMVAI 探索人工智能在基础设施建设应用与运维中的新挑战
  • 某某建筑市场监管公共服务平台|数据解密—逆向分析
  • rocketmq 环境配置[python]
  • 记录算法笔记(2025.5.15)将有序数组转换为二叉搜索树
  • unity之导入本地packages包
  • 【云实验】搭建个人网盘实验
  • OSM路网简化文档+实操视频讲解(道路中心线提取、拓扑检查,学术论文处理方式)11
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(22):复习
  • AI基础知识(04):技术支柱、核心概念、开发工具、学习路径、伦理与挑战
  • python中常用的参数以及命名规范
  • Python - 爬虫;Scrapy框架之items,Pipeline管道持久化存储(二)
  • 每周靶点:HE4、S100β及文献分享
  • 安装ruoyi-vue-pro后台管理系统并启动bpm工作流模块
  • SAP EWM外向交货单过账/SCWM/GM043 错误