【链表 - LeetCode】206. 反转链表【带ACM调试】

206. 反转链表 - 力扣(LeetCode)

题解

迭代版本

一共三个指针,一个是记录最开始的节点,一个是当前反转节点,一个是下一个待反转的节点。

记住这里是反转,所以,针对节点来看,将当前节点 cur 指向最开始节点,即完成反转。

然后所有指针往下走一步。

走的顺序是从前往后走,即最开始节点=当前反转节点,当前反转节点=下一个待反转节点。

/*** 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* prev = nullptr;ListNode* cur, * nxt;cur = head;while(cur){nxt = cur->next;cur->next = prev;prve = cur;cur = nxt;}return prev;}
};

反转链表 ACM 版本

加了输入输出以及相对应的初始化部分,更方便调试一些。

#include <iostream>
#include <list>using namespace std;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 *prev = nullptr;ListNode *cur, *nxt;cur = head;while (cur){nxt = cur->next;cur->next = prev;prev = cur;cur = nxt;}return prev;}
};int main()
{ListNode *head = nullptr, *tail = nullptr;int x, n;cin >> n;for (int i = 0; i < n; i++){cin >> x;ListNode *tmp = new ListNode(x, nullptr);if (head == nullptr){head = tail = tmp;}else{tail->next = tmp;tail = tmp;}cout << x << endl;}Solution solution;head = solution.reverseList(head);while (head){cout << head->val << " ";head = head->next;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94355.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

langgraph快速搭建agent后端和react前端

官方文档 一、后端 1.安装基础依赖 pip install --upgrade "langgraph-cli[inmem]"2.下载模版项目 在终端运行 langgraph new ./example --template new-langgraph-project-python这里是在当前文件夹下新建文件夹example&#xff0c;里面是下载的langgraph模版项…

第2章:幽灵协议初现

林薇的手指刚触碰量子控制台的“时间锚点”按钮&#xff0c;Elysium的拓扑图突然炸开一片猩红。0.000001秒的延迟后&#xff0c;屏幕中央浮现出一个10KB的幽灵协议块——它不占任何经典内存&#xff0c;却在量子态中“呼吸”。“它在……重写协议。”林薇的BCI接口传来低沉的嗡…

Unity其他--【MMD】如何在Unity中制作MMD

小菲摇之前学习了在Unity中使用动画状态机控制人物&#xff0c;以及用Shader去对氛围图形进行渲染&#xff0c;然后又刷到一些MMD的视频&#xff0c;我就想着MMD能做的事情感觉Unity应该也都能做而且更方便的吧&#xff0c;所以就尝试做了一下。当然这里主要是记录一下自己是怎…

从技术精英到“芯”途末路:一位工程师的沉沦与救赎

作者&#xff1a;邱戈龙、曾建萍【长昊律所】 专注于商业秘密、软件著作权的专业型律师事务所&#xff0c;擅长民事、行政、刑事多重救济途径&#xff0c;为众多科学技术领域的商业秘密、软件著作权类案件提供侵权维权、辩护、司法鉴定、司法审计、调查取证等高品质专项法律服务…

刷题日记0824

两眼一睁就是刷&#xff01;今日计划5道3/5昨天遇到了几件令人心情不好的小事&#xff0c;今天还要处理一下。一早上的好心情被小小的破坏了一下。1056. 易混淆数 简单有思路&#xff0c;心情好。耶比耶比&#xff0c;算是一遍过&#xff0c;这次考虑很周。写完了有一种一遍过的…

Qt c++开发中的delete QThread操作需注意

1、析构函数中&#xff0c;不能执行QEventLoop&#xff0c;会造成 重入问题&#xff1a;事件循环可能触发其他事件&#xff0c;导致已析构的对象被再次访问信号槽连接&#xff1a;正在析构的对象可能还有未断开的信号槽连接未定义行为&#xff1a;对象状态不确定&#xff0c;可…

Seaborn数据可视化实战:Seaborn图表定制与数据可视化入门

高级图表定制 学习目标 通过本课程你将掌握如何使用Seaborn库进行高级图表定制&#xff0c;包括图表的标题、图例、注释的添加&#xff0c;以及图表布局和大小的调整。这些技能将帮助你更有效地展示数据&#xff0c;使你的数据故事更加生动和有说服力。 相关知识点 Seaborn高级…

nano命令使用方法

nano 是 Ubuntu 等 Linux 系统中常用的轻量级文本编辑器&#xff0c;轻量易用&#xff0c;特别适合适合快速编辑配置文件、脚本等。以下是其核心使用方法&#xff1a;一、基本操作&#xff1a;打开 / 创建文件bash# 打开已存在文件&#xff08;若文件不存在则创建&#xff09; …

C#_gRPC

6.3 gRPC&#xff1a;高性能跨语言服务间通信 gRPC是一个高性能、开源、通用的RPC&#xff08;Remote Procedure Call&#xff09;框架&#xff0c;由Google开发并基于其多年的内部使用经验&#xff08;Stubby&#xff09;。它现在是Cloud Native Computing Foundation&#xf…

Ubuntu 多版本 librealsense 与 realsense_ros 编译并兼容 L515 等设备

这篇博客用来记录如何在 Ubuntu 下编译多个版本的 librealsense 并使用 L515 和 D435i 等设备。核心在于 L515 这款设备已经停止维护&#xff0c;直接安装的方案不支持这个设备&#xff0c;只支持 D435i 等后期产品。如果想要同时使用新老的 realsense 产品&#xff0c;需要单独…

Java 泛型 T、E、K、V、?、S、U、V

目录 一、概述 二、为什么使用泛型 三、常见泛型类型参数的含义与用途 示例一&#xff1a;使用 T 定义泛型类 示例二&#xff1a;使用 E 表示集合元素 示例三&#xff1a;使用 K 和 V 表示键值对 示例四&#xff1a;使用 ? 通配符处理未知类型 四、通配符 ? 的扩展用…

1688拍立淘接口数据全面解析详细说明(item_search_img)

一、接口概述 1688拍立淘接口是阿里巴巴1688平台提供的基于图像识别的商品搜索服务&#xff0c;允许开发者通过上传商品图片来搜索平台上的同款或相似商品。该接口的主要功能是接收用户上传的图片&#xff08;或图片的相关信息&#xff09;&#xff0c;并通过1688平台的图像识…

【Docker项目实战】使用Docker部署轻量级LetsMarkdown文本编辑器

【Docker项目实战】使用Docker部署轻量级Markdown文本编辑器一、LetsMarkdown介绍1.1 LetsMarkdown简介1.2 主要特点二、本次实践介绍2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3检查docker compose 版本四、拉取容器镜像五…

Node.js自研ORM框架深度解析与实践

Node.js自研ORM框架深度解析与实践 前言 在现代Web开发中&#xff0c;对象关系映射&#xff08;ORM&#xff09;框架扮演着至关重要的角色。它们为开发者提供了一层抽象&#xff0c;使得数据库操作变得更加简单和直观。本文将深入解析一个基于Node.js和MySQL的自研ORM框架&…

汇总图片拖进ps中 photoshop同时打开几个文件夹

如果你有许多文件夹&#xff0c;你想选中一部分&#xff0c;然后把里面的图片全部拖进photoshop当中&#xff0c;但是文件夹又不能直接拖进去&#xff0c;那么你可以尝试使用一下这个工具&#xff0c;首先测试一下直接拖文件夹。选中你要处理的文件夹&#xff0c;直接拖进photo…

mysql 5.7 查询运行时间较长的sql

开发过程遇到sql 执行时间长&#xff0c;又取消不了的情况 可使用 kill query ID 杀死进程获取正在运行的sqlSELECT ID, -- 进程ID&#xff1a;MySQL服务器分配给每个连接的唯一标识符&#xff0c;用于区分不同的客户端连接USER, …

MongoDB 从入门到实践:全面掌握文档型 NoSQL 数据库核心操作

目录 一、MongoDB 基础准备 1. 官方资源获取 2. 安装步骤解析 二、MongoDB 核心指令详解 1. 数据库操作指令 2. 集合操作指令 3. 文档操作指令 查询文档 插入文档 修改文档 删除文档 三、进阶查询技巧 1. 运算符的灵活运用 比较运算符 逻辑运算符 范围与成员运算…

CVPR2025丨遥感领域,全模态与秒超高清遥感建模重大突破,性能提升创新点

关注gongzhonghao【CVPR顶会精选】刚入门遥感建模时&#xff0c;总好奇别人为什么总能提出新方法&#xff1f;慢慢摸索后才发现&#xff0c;创新点并不是硬憋出来的&#xff0c;而是要从数据特性、传感器差异、地物细节以及环境变化中发现机会。不同波段、不同分辨率、不同时相…

HTML5详篇

前端三剑客 前端三剑客是指HTML、CSS和JavaScript: HTML超文本标记语言(Hyper Text Markup Language):简单理解描述网页结构的;用于网页内容的语言。它通过使用不同的HTML标签来定义页面中的各种元素,例如标题、段落、图像、链接等【无羽毛的小鸟模型】 CSS层叠样式表(…

【Transient-Free 3DGS】delayed densification + coarse to fine增加GS的鲁棒性

25年最新连接去除场景瞬态对象工程与3DGS的pipeline&#xff0c;改进了spotlesssplats&#xff0c;已开源&#xff1a; [2506.02751] RobustSplat: Decoupling Densification and Dynamics for Transient-Free 3DGSAbstract page for arXiv paper 2506.02751: RobustSplat: De…