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

C/C++---------------LeetCode第LCR. 024.反转链表

反转链表

  • 题目及要求
  • 双指针

题目及要求

双指针

思路:遍历链表,并在访问各节点时修改 next 引用指向,首先,检查链表是否为空或者只有一个节点,如果是的话直接返回原始的头节点,然后使用三个指针来迭代整个链表:prev(前一个节点)、curr(当前节点)和nextNode(下一个节点),在每一步迭代中,将curr的next指针指向prev,然后更新prev和curr指针为下一个节点,直到遍历完整个链表。最后返回新的头节点prev,即原链表的尾节点。这样就完成了链表的反转操作
时间复杂度:O(n)
空间复杂度:O(1)

class Solution {
public:ListNode* reverseList(ListNode* head) {// 检查链表为空或只有一个节点的情况,直接返回原链表头节点if (!head || !head->next) {return head;}ListNode* prev = nullptr;  // 用于存储当前节点的前一个节点ListNode* curr = head;     // 当前节点指针,初始指向链表头节点while (curr) {ListNode* nextNode = curr->next;  // 保存当前节点的下一个节点curr->next = prev;                // 将当前节点的指针指向前一个节点,实现反转prev = curr;                      // 更新前一个节点为当前节点curr = nextNode;                  // 更新当前节点为下一个节点}return prev;  // 返回反转后的链表头节点}
};

在这里插入图片描述

http://www.lryc.cn/news/235724.html

相关文章:

  • 最长回文子序列 递归与动态规划
  • 学生邮箱白嫖/免费安装JetBrains全家桶(IDEA/pycharm等) —— 保姆级教程
  • 67基于matlab图像处理,包括颜色和亮度调整、翻转功能、空间滤波和去噪、频域滤波和去噪、噪声添加,形态学操作、边缘检测及示波器集成的GUI图像处理。
  • 【精选】项目管理工具——Maven详解
  • DVWA - 4
  • gRPC之grpc resolver
  • NI Package Manager创建程序包
  • C语言实现排序介绍
  • 64位ATT汇编语言使用bss段.skip指令储存字符,并使用系统调用输出字符
  • 贝锐蒲公英路由器X4C如何远程访问NAS?
  • Golang Context 的使用指南
  • vue3使用西瓜播放器播放flv、hls、mp4视频
  • 【Promise12数据集】Promise12数据集介绍和预处理
  • Qt设置整体背景颜色
  • Stream流常见操作
  • INFINI Labs 产品更新 | 发布 Easysearch Java 客户端,Console 支持 SQL 查询等功能
  • 前端调试只会console.log()?
  • CentOS Linux release 7.9.2009 (Core)中安装配置Tomcat
  • 移动机器人路径规划(四)--- 考虑机器人模型下的运动规划KINODYNAMIC PATHFINDING
  • 服务器数据恢复—VMware虚拟化下误操作导致服务器崩溃的数据恢复案例
  • 微服务实战系列之Gateway
  • GZ038 物联网应用开发赛题第10套
  • 重生之我是一名程序员 35
  • 计算机毕业设计选题推荐-点餐微信小程序/安卓APP-项目实战
  • 分享禁止Win10更新的两种方法
  • SPASS-回归分析
  • 【使用vscode在线web搭建开发环境--code-server搭建】
  • c++ list容器使用详解
  • 【案例】可视化大屏
  • js制作动态表单