【反转链表】

2023-05-16

题目

输入一个链表,反转链表后,输出新链表的表头。


题解

遍历一遍链表,在遍历的过程中不断将指向关系反转,可以想到需要两个指针fastslowfast在前,slow在后,两个指针一同前进,每一次fast将其next指向slow,即反转指向关系,为了保证fast后面的所有节点不失效,还需要第3个指针tmp保存fast的下一个节点。

public class Solution {
    public ListNode ReverseList(ListNode head) {
        if (head == null || head.next == null) return head;
        ListNode fast = head.next, slow = head;
        slow.next = null;
        while (fast != null) {
            ListNode tmp = fast.next; // 保存下一个节点
            fast.next = slow;  // 反转指向关系
            // 两个指针同时前进
            slow = fast;  
            fast = tmp;  
        }
        return slow;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【反转链表】 的相关文章

  • 【并查集】面试题 17.07. 婴儿名字

    题目 每年 xff0c 政府都会公布一万个最常见的婴儿名字和它们出现的频率 xff0c 也就是同名婴儿的数量 有些名字有多种拼法 xff0c 例如 xff0c John 和 Jon 本质上是相同的名字 xff0c 但被当成了两个名字公布出来
  • 【Java】字符串比较compareTo

    根据字典序比较两个字符串的大小 xff0c 使用compareTo方法 xff0c 如下 xff0c 如果字符串str1和str2相等则res 61 0 xff0c 若str1字典序小于str2则res lt 0 xff0c 否则res g
  • 【Java】String indexOf substring截取字符串

    使用indexOf char c 方法获取字符串中第一次出现字符c的下标 xff0c 例如 span class token keyword public span span class token keyword class span s
  • 树莓派3B+环境搭建

    转载 xff1a https blog csdn net zhangjun62 article details 80517176 我的树莓派3b 43 没有买HDMI 屏 xff0c 利用网线与电脑主机相连操纵树莓派 如果买回来接上电 xf
  • 【Scala】创建整型数组

    var res span class token operator 61 span new ArrayBuffer span class token punctuation span Int span class token punctua
  • 【RDD编程】map和mapPartitions

    map和mapPartitions map针对RDD中的每一个元素调用一次函数 xff0c 而mapPartitions针对RDD中每个Partition调用一次函数 xff0c 假设RDD有N个元素 xff0c 有M个分区 xff0c 那
  • 【Spark入门项目】词频统计

    项目要求 要求统计txt英文文件中每个单词出现的次数 txt文件内随机拷贝英文内容 xff0c 如下 The scientists re analysed a sample collected by NASA astronauts duri
  • 【jieba】中文分词

    span class token keyword import span jieba words span class token operator 61 span jieba span class token punctuation sp
  • 【Python】读取中文

    fn span class token operator 61 span span class token builtin open span span class token punctuation span path span clas
  • 【WordCloud】生成词云

    generate from frequencies xff1a 从频率字典中生成词云 该方法传入统计好的词频字典 xff0c 例如 39 Python 39 5 39 Hadoop 39 10 39 Spark 39 20 39 大数据 3
  • 【Spark入门项目】统计男女生身高的平均值、最大、最小值

    项目要求 分别统计男女生身高的平均值 最大 最小值 xff0c 数据格式为 xff08 ID xff0c sex xff0c height xff09 xff0c 如下 xff1a 1 M 174 2 F 165 3 M 180 4 M 1
  • 【Spark入门项目】关键词统计

    项目描述 统计txt文件中出现频率前10的关键词 xff0c 内如如下 实现流程 初始化spark配置通过textFile方法读取txt文件通过flatMap将RDD中的每一个元素调用split方法分词 xff0c split中使用jieb
  • 【二叉搜索树】面试题 17.12. BiNode

    题目 二叉树数据结构TreeNode可用来表示单向链表 xff08 其中left置空 xff0c right为下一个链表节点 xff09 实现一个方法 xff0c 把二叉搜索树转换为单向链表 xff0c 要求依然符合二叉搜索树的性质 xff
  • 【二叉搜索树】1305. 两棵二叉搜索树中的所有元素(非递归中序遍历)

    题目 给你 root1 和 root2 这两棵二叉搜索树 请你返回一个列表 xff0c 其中包含 两棵树 中的所有整数并按 升序 排序 示例 1 xff1a 输入 xff1a root1 span class token operator
  • 51单片机的RFID门禁系统

    一 硬件方案 本RFID系统设计可分为硬件部分和软件部分 硬件部分以MFRC522射频识别模块为核心 xff0c 结合主控模块STC89C52设计系统的外围硬件电路 xff0c 实现对射频卡的控制与MCU之间的互通 软件部分采用C语言进行系
  • 【win10 Kafka基本操作】启动、创建topic、发送信息

    1 启动Zookeeper Kafka依赖于zookeeper xff0c 因此需要先启动zookeeper xff0c 使用kafka内置的zookeeper xff0c cd到kafka的bin windows目录下 xff0c 运行如
  • java.lang.IllegalArgumentException: Unsupported class file major version 58

    使用scala编写代码 xff0c 程序报错 java lang IllegalArgumentException Unsupported class file major version 58 改错误为jdk版本和scala不兼容 xff
  • 【跳表】

    跳表原理 跳变是一种高效的搜索结构 xff0c 是对链表的一种优化 xff0c 如下图所示 xff0c 以下图片均摘自博客 xff0c 原始的链表结构如下图 xff0c 实现查找 删除和插入复杂度都为O n xff0c 因为需要遍历链表 而
  • 【Union联合】

    C 43 43 的联合是一个特殊的类 xff0c 联合中可以有多个数据成员 xff0c 但是在任意时刻只能有一个数据成员有值 xff0c 例如下列联合中有三个数据成员 xff0c 其中占位最大的是a xff0c 因此该联合的所占的大小为32
  • 【拼凑硬币】腾讯机试题

    拼凑硬币 时间限制 xff08 每个case xff09 2s 空间限制 xff1a 128MB 小Q十分富有 xff0c 拥有非常多的硬币 xff0c 小Q拥有的硬币是有规律的 xff0c 对于所有的非负整数K xff0c 小Q恰好各有两

随机推荐

  • 【python】glob标准库使用,提取满足条件的目录或文件

    glob 文件名模式匹配 xff0c 不用遍历整个目录判断每个文件是不是符合 例子 xff1a 文件结构如下 xff0c 使用glob读取files下vgg开头且后面为单个数字的文件 代码如下 xff0c 表示匹配单个字符 span cla
  • 【ERROR】Failed to get convolution algorithm. This is probably because cuDNN failed to initialize

    1 有可能是显存不足 xff0c 尝试减小batchsize 2 os environ 39 TF FORCE GPU ALLOW GROWTH 39 61 39 true 39 这个语句的意思是 xff0c TensorFlow 在分配显
  • 【tensorboard】可视化模型

    关键使用tf summary trace on graph 61 True profiler 61 True 跟踪张量的流动 xff0c tf summary trace export导出图的结构 span class token keyw
  • 【python】画三维散点图Axes3D

    span class token keyword import span numpy span class token keyword as span np span class token keyword import span matp
  • 【python】输出当前时间

    span class token keyword import span time span class token keyword print span span class token punctuation span time spa
  • K8S Flannel

    1 简介 flannel是CoreOS提供用于解决Dokcer集群跨主机通讯的覆盖网络工具 它的主要思路是 xff1a 预先留出一个网段 xff0c 每个主机使用其中一部分 xff0c 然后每个容器被分配不同的ip xff1b 让所有的容器
  • 【dlib库安装】

    直接pip安装dlib库会报错 xff0c 需要先安装cmake xff0c 再安装dlib conda下可以分别使用以下命令 xff08 一行一行来 xff09 conda span class token function instal
  • 【tensorflow】tf.slice()

    tf slice inputs begin size name 是tensorflow中对向量inputs的切片 xff0c begin表示每个维度要抽取的开始位置 xff0c size表示从开始位置往后要抽取的元素个数 xff0c 若某个
  • 【Anaconda配置tensorflow2.0GPU+CUDA+CUDNN】

    创建一个新环境conda create name tf gpu python 61 3 6 xff0c python版本为3 6 xff0c 然后分别执行以下语句 xff0c conda install cupy可以自动寻找符合版本的cud
  • 【python】不同目录下导入py文件

    https zhuanlan zhihu com p 64893308
  • 【python】使用cupy加速

    cupy和numpy使用类似 xff0c 不同的是cupy在计算数组和矩阵时直接调用GPU来加速 xff0c 而numpy是调用cpu计算 在使用cupy时需要注意 xff0c cupy适合高维大尺寸的向量计算 xff0c 因为初始化GPU
  • 【点云可视化】自制ply文件并使用open3d可视化点云

    使用open3d可视化点云 xff0c 需要将点云制作为ply文件传入函数中 安装open3d 直接使用pip安装 pip span class token function install span open3d ply文件 ply文件的
  • 【python】返回列表排序索引

    arr span class token operator 61 span span class token punctuation span span class token number 1 span span class token
  • 【win10】安装pytorch1.6.0+cuda10.1 + torch-geometric

    conda下新建一个环境 xff0c 使用python3 6 conda create name torch ge span class token assign left variable python span span class t
  • 【python】制作GIF

    导入库 span class token keyword import span matplotlib span class token punctuation span pyplot span class token keyword as
  • 【3D体素可视化】

    可视化3D体素 xff0c voxel被表示为一个3维的数组 xff0c 每个位置为0或1 span class token keyword from span mpl toolkits span class token punctuati
  • OVS 使用总结

    1 简介 Open vSwitch 是一个用C语言开发的多层虚拟交换机 1 1 工作原理 内核模块实现了多个 数据路径 xff08 类似网桥 xff09 每个都可以有多个 vports xff08 类似网桥的端口 xff09 每个数据路径也
  • MySQL常用函数学习

    前言 MySQL函数是MySQL数据库提供的内置函数 xff0c 这些内置函数可以更方便处理表中的数据 下面简单介绍一下MySQL中包含的几类常用函数 聚合函数 聚合函数可实现根据一组数据求出一个值 xff0c 聚合函数的结果值只根据选定数
  • 【双指针(快慢指针)】链表中倒数第k个结点

    题目 输入一个链表 xff0c 输出该链表中倒数第k个结点 暴力解法 很多种 xff0c 先遍历一遍 xff0c 统计链表的长度 xff0c 让后找正数的第n k 1个节点 快慢指针 使用两个指针 xff0c fast和slow xff0c
  • 【反转链表】

    题目 输入一个链表 xff0c 反转链表后 xff0c 输出新链表的表头 题解 遍历一遍链表 xff0c 在遍历的过程中不断将指向关系反转 xff0c 可以想到需要两个指针fast和slow xff0c fast在前 xff0c slow在