HOT23-反转链表

news2024/10/7 4:30:35

    leetcode原题链接:反转链表

题目描述

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

示例 1:

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

示例 2:

输入:head = [1,2]
输出:[2,1]

示例 3:

输入:head = []
输出:[]

提示:

  • 链表中节点的数目范围是 [0, 5000]
  • -5000 <= Node.val <= 5000

解题方法:用双指针,一个前驱指针,一个后继指针。从左向右遍历,一边遍历一边逆转。当前驱指针走到最后一个节点的下一个空点时,后继指针到达链表的最后一个非空节点,即tail节点,逆转后后继节点变成了新的头节点。

C++代码


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) {
        if (head == nullptr) {
            return nullptr;
        }
        ListNode* pre = nullptr;//后继指针
        ListNode* p = head;//前驱指针
        while (p) { //跳出循环后,p指向了nullptr,pre指向了最后一个非空的tail节点
            ListNode* p_next = p->next; //先把前驱指针的下一个节点保存,防止断链
            p->next = pre;
            pre = p;
            p = p_next;
        }
        return pre;
    }
};

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

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

相关文章

Spring Boot 中的缓存注解

Spring Boot 中的缓存注解 在 Spring Boot 中&#xff0c;缓存是一个非常重要的话题。当我们需要频繁读取一些数据时&#xff0c;为了提高性能&#xff0c;可以将这些数据缓存起来&#xff0c;避免每次都从数据库中读取。为了实现缓存&#xff0c;Spring Boot 提供了一些缓存注…

电脑大文件夹怎么加密?大文件夹方法介绍

当我们把电脑中的各种数据分类存放在文件夹中时&#xff0c;可以方便我们使用和管理。但这些文件夹也会变得十分庞大&#xff0c;如果想要加密它们&#xff0c;就需要使用更快速、安全的方法。下面我们来了解一下电脑大文件夹的加密方法。 文件夹加密超级大师 文件夹加密超级大…

享元模式的学习与使用

1、享元模式的学习 当我们需要创建大量相似的对象时&#xff0c;享元模式&#xff08;Flyweight Pattern&#xff09;可以提供一种有效的解决方案。享元模式旨在通过共享对象来最小化内存使用和提高性能。它将对象分为可共享的内部状态&#xff08;Intrinsic State&#xff09;…

websocket前端的连接与接收数据

什么是websocket 1, WebSocket是一种用于在客户端和服务器之间进行全双工通信的网络协议。它使得在单个TCP连接上可以进行双向通信&#xff0c;允许服务器主动地发送数据给客户端&#xff0c;同时客户端也可以向服务器发送数据。与传统的HTTP请求-响应模型不同&#xff0c;Web…

百度排名代发收录怎么上百度

百度排名代发收录怎么上百度&#xff0c;如何提高百度排名&#xff0c;网站提高排名最新手册&#xff01;#seo 今天来点不一样的&#xff0c;就是讲一下百度竞价里边最基础也是最容易踩的一个坑&#xff0c;就是我发现很多人很喜欢把自己推广的产品或者说业务直接作为关键词上…

OpenAI 发布的新语音系统Whisper能力到底有多强?

OpenAI 最近发布了一个名为Whisper 的自动语音识别系统&#xff0c;声称其在英语语音识别方面已经接近人类水平的鲁棒性和准确性。这个系统使用了68万小时多任务监督数据来进行训练&#xff0c;并且在处理口音、背景噪音和技术语言等复杂场景时表现出了很好的鲁棒性。那么&…

s3 删除事故?

起因 一次巡检s3备份查看时, 一回车手滑,出现了下面这种画面,生产事故?!!! 现象 aws s3 rm s3://gfai-hk/upload.cmd 证实的确被删除了,推断后面的生产数据也被全删, 尝试用s3命令恢复发现需要该对象开启版本控制, rm被删除才有可能找回,否则永久删除于是尝试下面的命令 先…

跟着李沐学AI(动手学深度学习 PyTorch版)学习笔记——02深度学习介绍

1.课程安排大概共34天的课-&#xff08;计划7月底看完&#xff0c;争取做到最少两天一更&#xff09; 2.动手学深度学习课本教材 3.课程谈论坛 4.pytorch论坛 一、 目标 二、内容 三、 学习目标&#xff1a; 四、简单了解深度学习 深度学习&#xff1a; 图片分类物体的检测和…

华为OD机试真题 Python 实现【区间连接器】【2023Q1 200分】,附详细解题思路

一、题目描述 有一组区间 [a0, b0], [a1, b1], … (a, b 表示起点, 终点)&#xff0c;区间有可能重叠、相邻&#xff0c;重叠或相邻则可以合并为更大的区间&#xff1b; 给定一组连接器[x1, x2, x3, …]&#xff08;x 表示连接器的最大可连接长度&#xff0c;即 x>gap&…

python网络编程笔记(一)

一&#xff1a;Socket简介 套接字起源于20世纪70年代加利福尼亚大学伯克利分校版本的Unix,即人们所说的BSD Unix。因此,有时人们也把套接字称为“伯克利套接字"或"BSD套接字”。一开始,套接字被设计用在同 -台主机上多个应用程序之间的通讯BSD Socket接口是TCP/IP网…

ArcMap发布arcgis sever缓存瓦片服务

1.全能电子地图下载瓦片地图 2.地图拼接 acrgis sever缓存瓦片 下载完成的文件目录 3.arcMap添加数据 连接本地文件 这一步有坑&#xff0c;一定要加载到瓦片最外层目录&#xff0c;否则看不到图层文件。 找到图层数据&#xff0c;点击添加 添加数据完成&#xff0c;开始发布服…

数字化和物联网的发展如何改变我们的生活方式?

数字化和物联网 (IoT) 的发展已经给我们的生活方式带来了重大变化&#xff0c;而且这些变革将在未来继续发生。以下是数字化和物联网影响我们生活的一些方式&#xff1a; 连接设备和智能家居&#xff1a;物联网使日常物品能够连接到互联网并相互通信。这种连通性允许创建智能家…

记录一次oracle报错IMP-00058: 遇到 ORACLE 错误 904 ORA-00904: “xxx“: 标识符无效

错误原因&#xff1a;导入的表中缺少DATASRC字段 解决方法&#xff1a;在要导入的表中加上DATASRC字段

对 React 状态管理的理解及方案对比

1、React 状态、通信 React 为什么需要状态管理 React 特点&#xff1a; 专注 view 层&#xff1a;专注 view 层 的特点决定了它不是一个全能框架&#xff0c;相比 angular 这种全能框架&#xff0c;React 功能较简单&#xff0c;单一。UIrender(data)UIrender(data)&#x…

Keras-深度学习-神经网络-人脸识别模型

目录 模型搭建 模型训练 模型搭建 ①导入所需的库&#xff0c;导入了 Keras 和其他必要的库&#xff0c;用于构建和处理图像数据。 from keras.models import Sequential from keras.layers import Dense, Flatten, Conv2D, MaxPooling2D import os from PIL import Image …

《C++高级编程》读书笔记(十二:利用模板编写泛型代码)

1、参考引用 C高级编程&#xff08;第4版&#xff0c;C17标准&#xff09;马克葛瑞格尔 2、建议先看《21天学通C》 这本书入门&#xff0c;笔记链接如下 21天学通C读书笔记&#xff08;文章链接汇总&#xff09; 1. 模板概述 模板将参数化的概念推进了一步&#xff0c;不仅允许…

用Python搭建监控平台详解

概要 监控和运维&#xff0c;是互联网工业链上非常重要的一环。监控的目的就是防患于未然。通过监控&#xff0c;我们能够及时了解到企业网络的运行状态。一旦出现安全隐患&#xff0c;你就可以及时预警&#xff0c;或者是以其他方式通知运维人员&#xff0c;让运维监控人员有时…

oracle 自定义类型(type)的用法

emp表数据如下所示 定义object类型 create or replace type typeof_userinfo_row as object(user_id varchar2(50),user_name varchar2(50) )创建函数并将此类型作为返回值类型 create or replace function FUN_TEST return typeof_userinfo_row isFunctionResult typeof_use…

互联网业务全球化互通组网

随着互联网业务的快速发展&#xff0c;越来越多的企业开始全球化扩张业务&#xff0c;并需要在全球范围内建立互联网组网以实现业务数据的高效传输。在这个过程中&#xff0c;如何建立高效、稳定的全球互联网组网方案&#xff0c;是每个企业都需要考虑的问题。 一种可行的方案…

springboot 上传文件

在Spring Boot中&#xff0c;可以使用RequestParam注解来接收文件。 在你的控制器方法中&#xff0c;使用RequestParam注解来声明一个MultipartFile类型的参数来接收上传的文件 MultipartFile是spring类型&#xff0c;代表HTML中form data方式上传的文件&#xff0c;包含二进制…