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

leetcode_206 反转链表

1. 题意

原地反转链表,非常经典的一道题。

2. 解决

2.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) {// A->B->C// next = getNext;// cur->next = pre// pre = cur;// cur =  next;// //          pre//          |//          V//  null <- A    B->C // null <- A     ListNode *pre = nullptr;ListNode *cur = head;while ( cur ) {ListNode *nxt = cur->next;cur->next = pre;pre = cur;cur = nxt;}return pre;}};
2.2 递归

递归的比较难理解一些 。

由于返回的是翻转后的头节点,因此需要不断的递归到没有后继节点的最后一个节点, 它就是反转后链表的头节点了。

返回的链表的最后 一个节点是head->next , 将它的指向改成当前节点。同时我们还需要将当前节点的next域置空,否则无法将原先的头指空。

/*** 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) {// A->B->Cif ( head == nullptr || head->next == nullptr) {return head;}ListNode *newHead = reverseList( head->next );ListNode *newListTail = head->next;newListTail->next = head;head->next = nullptr;return newHead;}};

3. 参考

[lc206]

相关文章:

leetcode_206 反转链表

1. 题意 原地反转链表&#xff0c;非常经典的一道题。 2. 解决 2.1 非递归 非递归的比较好理解&#xff1b;链表需要维护前驱和后继两个信息&#xff0c;当我们要更改后继时&#xff0c;先要把原来的后继先存起来。 /*** Definition for singly-linked list.* struct List…...

OPenCV CUDA模块光流------高效地执行光流估计的类BroxOpticalFlow

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::cuda::BroxOpticalFlow 是 OpenCV CUDA 模块中实现Brox光流算法的类。该类用于在 GPU 上高效地计算两帧图像之间的稠密光流&#xff08;Dens…...

高考:如何合理选择学科、专业以及职业

如何合理选择学科、专业以及职业 一、自我认知&#xff1a;明确自身兴趣与优势&#xff08;一&#xff09;兴趣探索&#xff08;二&#xff09;能力评估&#xff08;三&#xff09;价值观与目标 二、外部调研&#xff1a;深入了解学科、专业与职业&#xff08;一&#xff09;学…...

K8S认证|CKS题库+答案| 3. 默认网络策略

目录 3. 默认网络策略 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、官网找模板 3&#xff09;、按照题目要求创建networkpolicy 4&#xff09;、应用networkpolicy 5&#xff09;、检查策略 3. 默认网络策略…...

HTTP、WebSocket、SSE 对比

特性HTTPWebSocketSSE (Server-Sent Events)通信模式请求-响应&#xff08;单向&#xff09;全双工双向通信服务器到客户端的单向通信连接方式短连接&#xff08;默认&#xff09;长连接长连接协议基础TCP&#xff08;HTTP/1.1, HTTP/2&#xff09;基于HTTP升级基于HTTP数据格式…...

Linux编程:1、文件编程

一、Linux 文件编程与 C 语言文件编程的区别 特性C 语言 I/O 库函数Linux 文件编程&#xff08;系统调用&#xff09;实现层面用户空间&#xff08;glibc 库&#xff09;内核空间&#xff08;系统调用&#xff09;跨平台性跨平台&#xff08;Windows/Linux&#xff09;仅限 Li…...

Kyosan K5BMC ELECTRONIC INTERLOCKING MANUAL 电子联锁

Kyosan K5BMC ELECTRONIC INTERLOCKING MANUAL 电子联锁...

【Spark征服之路-2.3-Spark运行架构】

运行架构 Spark 框架的核心是一个计算引擎&#xff0c;整体来说&#xff0c;它采用了标准 master-slave 的结构。 如下图所示&#xff0c;它展示了一个 Spark 执行时的基本结构。图形中的 Driver 表示 master&#xff0c;负责管理整个集群中的作业任务调度。图形中的 Executor …...

PART 6 树莓派小车+QT (TCP控制)

1. 树莓派作为服务器的程序 &#xff08;1&#xff09;服务器tcp_server_socket程序 可以实现小车前进、后退、左转、右转、加减速&#xff08;可能不行&#xff09; carMoveControl.py import RPi.GPIO as GPIO import time import tty,sys,select,termios import socket…...

软珊瑚成分 CI-A:靶向口腔癌细胞的 “氧化利剑” 与 ERK 密码

在生命科学探索的浩瀚星海中&#xff0c;癌症研究始终是最为耀眼却又充满挑战的领域之一。口腔癌&#xff0c;作为全球范围内日益严峻的公共健康问题&#xff0c;尤其在中南亚、美拉尼西亚以及我国台湾地区&#xff0c;其发病率和死亡率持续攀升&#xff0c;如同隐藏在黑暗中的…...

Cilium动手实验室: 精通之旅---4.Cilium Gateway API - Lab

Cilium动手实验室: 精通之旅---4.Cilium Gateway API - Lab 1. 环境准备2. API 网关--HTTP2.1 部署应用2.2 部署网关2.3 HTTP路径匹配2.4 HTTP头匹配 3. API网关--HTTPS3.1 创建TLS证书和私钥3.2 部署HTTPS网关3.3 HTTPS请求测试 4. API网关--TLS 路由4.1 部署应用4.2 部署网关…...

【芯片设计- RTL 数字逻辑设计入门 4.2 -- 组合逻辑赋值 + 时序逻辑状态保持】

文章目录 Overview原语句分析变量含义假设(根据命名推测)状态更新逻辑详解状态转移逻辑举个实际例子小结Overview 本文将详细介绍 verilog rtl 中 assign reg_halt_mode_nx = halt_taken | (reg_halt_mode & ~halt_return);的作用,以及这里为何要使用 reg_halt_mode,…...

如何使用索引和条件批量更改Series数据

视频演示 如何通过索引与布尔条件修改 pandas Series&#xff1f;实操演示来了 一、前言&#xff1a;掌握Series数据修改是数据处理的基础 在使用Python进行数据分析时&#xff0c;Pandas库的Series对象是最常用的结构之一。在上一个视频中我们已经学习了如何创建Series对象&a…...

Java转Go日记(六十):gin其他常用知识

1. 日志文件 package mainimport ("io""os""github.com/gin-gonic/gin" )func main() {gin.DisableConsoleColor()// Logging to a file.f, _ : os.Create("gin.log")gin.DefaultWriter io.MultiWriter(f)// 如果需要同时将日志写入…...

89.实现添加收藏的功能的后端实现

实现完查看收藏列表之后&#xff0c;实现的是添加收藏的功能 我的设想是&#xff1a;在对话界面中&#xff0c;如果用户认为AI的回答非常好&#xff0c;可以通过点击该回答对应的气泡中的图标&#xff0c;对该内容进行添加 所以后端实现为&#xff1a; service类中添加&…...

v1.0.1版本更新·2025年5月22日发布-优雅草星云物联网AI智控系统

v1.0.1版本更新2025年5月22日发布-优雅草星云物联网AI智控系统 开源地址 星云智控官网&#xff1a; 优雅草星云物联网AI智控软件-移动端vue: 优雅草星云物联网AI智控软件-移动端vue 星云智控PC端开源&#xff1a; 优雅草星云物联网AI智控软件-PC端vue: 优雅草星云物联网AI…...

如何创造出一种不同于程序语言的人与机器自然交互语言?

人机交互自然语言通过模拟人类日常交流方式&#xff0c;使机器能够理解并响应人类的自然表达&#xff0c;从而打破编程语言的复杂性壁垒&#xff0c;极大地提升人机协同的效率和自然性&#xff0c;让机器更好地融入人类的工作与生活场景。创造一种通用的人与机器自然交互语言是…...

宝塔think PHP8 安装使用FFmpeg 视频上传

宝塔think PHP8 安装使用FFmpeg 一、 安装think PHP8二、安装 FFmpeg1&#xff0c;登录到宝塔面板。2&#xff0c;进入“软件商店”。3&#xff0c;搜索“FFmpeg”。4&#xff0c;选择版本点击安装。5&#xff0c;检查 FFmpeg 是否安装成功6&#xff0c; 在 ThinkPHP 8 中使用 …...

26.【新型数据架构】-零ETL架构

26.【新型数据架构】-零ETL架构:减少数据移动,原系统直接分析;典型实现(AWS Zero-ETL) 一、零ETL的本质:从“数据搬运工”到“数据翻译官” 传统ETL(Extract-Transform-Load)需要将数据从源系统抽取、清洗、转换后加载到目标系统,这一过程往往耗时费力,且面临数据延…...

静态相机中的 CCD和CMOS的区别

文章目录 CCD处理方式CMOS处理方式两者区别 首先根据 成像原理&#xff0c;CCD和CMOS的作用是一致的&#xff0c;都是为了将光子转化为数字图像&#xff0c;只是 转换的方式出现差异。 CCD处理方式 获取光子&#xff1a; 在电荷耦合器件&#xff08;CCD&#xff09;传感器中…...

【MySQL基础】数据库的备份与还原

MySQL学习&#xff1a; https://blog.csdn.net/2301_80220607/category_12971838.html?spm1001.2014.3001.5482 前言&#xff1a; 在数据库管理中&#xff0c;删除操作是不可逆的&#xff0c;因此备份是数据安全的重要保障。下面我将详细介绍MySQL数据库删除前的备份方法&am…...

bug:undefined is not iterable (cannot read property Symbol(Symbol.iterator))

1.如图 2.分析 关键报错提示&#xff1a; undefined is not iterable (cannot read property Symbol(Symbol.iterator)) 直译&#xff1a; undefined是不可迭代的&#xff08;不能读取属性Symbol(Symbol.iterator)&#xff09; 理解&#xff1a; 有一个值、不存在&#x…...

为UE5的Actor添加能够读写姿态的功能

提问 // Copyright 2019-2022 The MathWorks, Inc. #include "SetGetActorLocation.h"// Sets default values ASetGetActorLocation::ASetGetActorLocation():SignalReader(nullptr), SignalWriter(nullptr) { }void ASetGetActorLocation::Sim3dSetup() { Super::…...

机器学习:支持向量机(SVM)原理解析及垃圾邮件过滤实战

一、什么是支持向量机&#xff08;SVM&#xff09; 1. 基本概念 1.1 二分类问题的本质 在机器学习中&#xff0c;分类问题是最常见的任务之一。最简单的情况就是二分类&#xff1a;比如一封邮件是“垃圾邮件”还是“正常邮件”&#xff1f;一个病人是“患病”还是“健康”&a…...

LLM Agent 如何颠覆股价预测的传统范式

写在前面 股价预测,金融领域的“圣杯”之一,吸引了无数研究者和投资者。传统方法从技术指标到复杂的计量经济模型,再到机器学习,不断演进,但市场的高度复杂性、非线性和充斥噪声的特性,使得精准预测依然是巨大的挑战。大型语言模型(LLM)的崛起,特别是LLM Agent这一新…...

App/uni-app 离线本地存储方案有哪些?最推荐的是哪种方案?

以下是 UniApp 离线本地存储方案的详细介绍及推荐方案分析&#xff1a; 一、UniApp 离线本地存储方案分类 1. 基于 uni.storage 系列 API&#xff08;跨端基础方案&#xff09; API 及特点&#xff1a; 提供 uni.setStorage&#xff08;异步存储&#xff09;、uni.getStorag…...

【案例分享】如何借助JS UI组件库DHTMLX Suite构建高效物联网IIoT平台

随着工业领域数字化进程的持续加快&#xff0c;Web 技术在实现实时监控、数据可视化与控制系统等方面正扮演着越来越核心的角色。来自智利的科技企业 Wise Data Global 就是这一趋势中的积极践行者。他们借助慧都科技代理的 DHTMLX Suite JavaScript UI 控件库&#xff0c;为遥…...

Skia如何绘制几何图形

应用程序&#xff08;网页、桌面应用或移动应用&#xff09;大多数都是由基本的几何图形构成的。那我们该如何使用 Skia 绘制基本的几何图形。 画矩形 void drawRect(SkCanvas* canvas) {SkPaint paint;paint.setColor(SK_ColorRED);paint.setStroke(true);paint.setStrokeWid…...

spring:实例化类过程中方法执行顺序。

如题。在实例化Bean时&#xff0c;会根据配置依次调用方法。在此测试代码如下&#xff1a; 在测试类中继承接口InitializingBean&#xff0c;接口InterfaceUserService&#xff08;该接口为自定义&#xff0c;只是定义set方法&#xff09;。 InterfaceUserService&#xff0c…...

设置应用程序图标

(1)找一张图片 (2)然后转ico图片 在线生成透明ICO图标——ICO图标制作 验证16x16就可以 降低exe大小 (3) 在xxx.pro修改 添加 &#xff08;4&#xff09; 删除 build 和 xxxpro_user文件 (5)编译project 和运行xx.exe (6)右键 设置快捷方式...