剑指 Offer II 024. 反转链表

news2024/11/29 4:34:45

题目链接

剑指 Offer II 024. 反转链表 easy

题目描述

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

示例 1:

在这里插入图片描述

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

示例 2:

这里是引用

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

示例 3:

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

提示:

  • 链表中节点的数目范围是 [ 0 , 5000 ] [0, 5000] [0,5000]
  • − 5000 ≤ N o d e . v a l ≤ 5000 -5000 \leq Node.val \leq 5000 5000Node.val5000

分析:模拟

我们用 cur指向 当前结点 ,用 pre指向当前结点的 前驱节点 , 用 nextNode指向当前结点的 后继结点

在这里插入图片描述
cur的下一个结点指向 pre。接着再让 pre指向当前结点 cur,让cur指向 nextNode

在这里插入图片描述

一直这样操作,直到 cur指向 null此时的 pre指向的就是反转后的链表头节点,直接返回即可。

时间复杂度: O ( n ) O(n) O(n)

C++代码:

/**
 * 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 *pre = nullptr , *cur = head;
        while(cur != nullptr){
            ListNode *nextNode = cur->next;
            
            cur->next = pre;

            pre = cur;
            cur = nextNode;
        }

        return pre;
    }
};

Python代码:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def reverseList(self, head: ListNode) -> ListNode:
        pre , cur = None , head

        while cur != None:
            nextNode = cur.next

            cur.next = pre

            pre = cur
            cur = nextNode

        return pre


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

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

相关文章

不用费劲,这5款效率工具为你解决学习工作烦恼

今天我要向大家推荐5款超级好用的效率软件,无论是在学习还是办公中都能够极大地提高效率。这些软件可以帮助你解决许多问题,而且每个都是真正的神器。 1.键盘仿真鼠标——NeatMouse NeatMouse 是一个小型的工具能够使用鼠标光标控制指针。当你的鼠标不…

python编程基础

python编程基础 1、什么是编程语言? 编程语言是用来控制计算机的一系列指令(Instruction),它有固定的格式和词汇(不同编程语言的格式和词汇不一样),必须遵守,否则就会出错&#xf…

opencv加水印

本文介绍opencv给图片加水印的方法。 目录1、添加水印1.1、铺满1.2、在指定区域添加1.3、一比一铺满1、添加水印 添加水印的原理是调低两张图片的透明度,然后叠加起来。公式如下: dst src1 * opacity src2 * (1 - opacity) gamma; opacity是透明度&a…

UE官方教程笔记02-实时渲染基础下

对官方教程视频[官方培训]02-实时渲染基础下 | 陈拓 Epic的笔记没听懂的地方就瞎写反射实时渲染中反射是一个非常有挑战的特性UE中有多种不同的方案,各有各的优势和缺点反射捕获屏幕空间反射平面反射LumenRT Reflection反射捕获在指定位置捕获一张Cube Map需要预计算…

低代码:助力乡村振兴事业开启“智慧模式”

伴随着脱贫攻坚目标任务的全面完成,我国“三农”工作重心历史性地转向全面推进乡村振兴,这也标志着我国农业农村工作迈上了一个新台阶。 什么是乡村振兴? 乡村振兴是新时代“三农”工作的总抓手,坚持农业农村优先发展,…

windows 下docker 安装clickhouse

docker 下载https://www.docker.com/products/docker-desktop/将下载下来的Docker Desktop Installer.exe文件双击进行安装即可,安装完成后,任务栏会出现一个蓝色的小鲸鱼图标(注意安装完成后可能会重启系统)Docker Desktop如果出…

禁用XXE处理漫谈

前言 近期准备面试题时,XXE漏洞防范措施(或者说修复方式)在一些文章中比较简略, 故本文根据研究进行总结,作为技术漫谈罢了。 简述 XXE漏洞 XXE(XML外部实体注入),程序解析XML数…

国产8K摄像机拍摄回顾与画面数据反馈

本文分析两款国产8K摄像机,一款是全画幅,一款是M43画幅。一、全新国产全画幅8K B1机器参数数据汇总:全画幅8K 60fps,受益于8K全画幅的优势与大幅升级的图像处理系统,BOSMA 8K摄像机系统提升到新的高度。拍摄支持&#…

Ubuntu 安装 CUDA and Cudnn

文章目录0 查看 nvidia驱动版本1 下载Cuda2 下载cudnn参考:0 查看 nvidia驱动版本 nvidia-smi1 下载Cuda 安装之前先安装 gcc g gdb 官方:https://developer.nvidia.com/cuda-toolkit-archive,与驱动版本进行对应,我这里是12.0…

C++语法规则1(C++面向对象 )

C面向对象 面向对象的三大特征是继承,多态和封装,C重面向对象重要的就是这些,我们下面通过一些简单的实例加以理解,从这小节开始,我们将开启新的编程旅途。与 C 语言编程的思想完全不同了,这就是 C!理解概…

[Linux基础]history相关的环境变量设置

目录 背景 简介 命令操作 1. 语法: 2. 功能 3. 参数 环境变量设置 背景 工作中时常收到客户的反馈,我的系统什么也没干,就出现文件丢失,程序错误等等问题;我们在问题排查的时候查看history信息也是重要环节…

大数据导论、Apache ZooKeeper

目录标题1、数据与数据分析2、数据分析基本步骤3、大数据时代4、分布式技术5、 Apache ZooKeeper5.1 ZooKeeper 概述5.2 ZooKeeper 特性5.3 ZooKeeper 集群角色5.4 ZooKeeper 集群搭建5.5 ZooKeeper 数据模型1、数据与数据分析 数据分析是指用适当的统计分析方法对收集来的数据…

零基础小白如何自学网络安全成为顶尖黑客?

在成为黑客之前,你需要做两点准备: 1、学一门编程语言。学哪一门不重要,但你要参考一下下面的条例: C语言是Unix系统的基础。它(连同汇编语言)能让你学习对黑客非常重要的知识:内存的工作原理…

Go爬虫学习笔记(二)

3 进阶路线:如何深入学习Go语言? 时间与复利思维 一万小时定律 - MBA智库百科 (mbalib.com):大量训练。 思维模型 类比:类比旧知识知识组块:将知识拆分知识体系:知识之间的联系:wiki、笔记双链…

漏洞分析丨cve-2012-0003

作者:黑蛋一、漏洞简介这次漏洞属于堆溢出漏洞,他是MIDI文件中存在的堆溢出漏洞。在IE6,IE7,IE8中都存在这个漏洞。而这个漏洞是Winmm.dll中产生的。二、漏洞环境虚拟机调试工具目标软件辅助工具XP-SP3、KaliOD、IDAIE6Windbg组件gflags.exe三…

Java 不同路径

不同路径中等一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径&#xff1f…

直播间与2位优秀创作者分享经历

我是卢松松,点点上面的头像,欢迎关注我哦! 昨天,卢松松的直播间好像又被推荐给了2.9万人观看,讲了一个小时后直播间的人数一直攀升,最终冲破了2万人大关。晚些时候,白杨SEO也来到了我的直播间&…

【数据结构】——树与二叉树

文章目录树二叉树二叉树的性质完全二叉树二叉树的存储遍历二叉树和线索二叉树6.4 树和森林哈夫曼树应用树 树的定义:树是以分支关系定义的层次结构。 D; 树(Tree)是n(n≥0)个结点的有限集。 R 数据关系 有且仅有一个特定的称为根(Root) 的结点 当n>1时&…

FCN网络介绍

目录前言一.FCN网络二.网络创新点前言 在图像分割领域,有很多经典的网络,如MASK R-CNN,U-Net,SegNet,DeepLab等网络都是以FCN为基础进行设计的。我们这里简单介绍一下这个网络。 一.FCN网络 FCN网络介绍   FCN 即全…

【学习笔记】人工智能哲学研究:《心智、语言和机器》

关于人工智能哲学,我曾在这篇文章里 【脑洞大开】从哲学角度看人工智能:介绍徐英瑾的《心智、语言和机器》 做过介绍。图片来源:http://product.dangdang.com/29419969.html在我完成了一些人工智能相关的工作以后,我再来分享《心智…