单链表经典OJ题:反转链表

news2025/1/18 3:41:39

题目:

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

图例:

 分析:

根据链表的特征,反转链表的本质便是改变节点内部的指针方向。

将原先指向下一个节点的指针进行修改,将其的指向修改成指向上一个节点。

解法:

根据分析我们可以得出两种解法:

解法1:

  • 定义新链表,和移除元素的做法类似,但是使用的是头插方法。

解法2:

  • 直接在原链表上改变指针的指向,这里需要运用三个指针。
  • 第一个是最开始的设置为NULL的指针n1
  • 第二个是开始从第一个节点开始遍历的n2
  • 第三个是从第二个节点开始遍历的n3。
  • n2是改变方向的,n3是保存下一个节点位置的,n1是被指方向的,三者同时开始遍历,只是遍历的位置不同。

解法2本质:
  • 本质就是原先 节点 1的 1->next  指向的是2 变成了指向NULL。
  •  原先节点2 的 2->next指向3 变成了指向节点1。
  • 开始遍历的时候,首先将n2的指针指向变成n1,而后n1要变成n2,n2要变成n3,n3要变成n3->next

  • 要注意n3在遍历过程中是最早指向NULL的所以要给n3设定一个判定条件,让n3及时停下。 
  • 另外还要判定这个链表是否有节点,那么就是得判定第一个节点head是否存在。

代码演示:

  • 因为n2最后要变成头节点,所以遍历的判定条件是n2是否为空 

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

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

相关文章

正点原子嵌入式linux驱动开发——Linux蜂鸣器

蜂鸣器驱动原理 有源蜂鸣器只要通电就会叫,所以可以做一个供电电路,这个供电电路通过一个IO来控制其通断 ,一般使用三极管来搭建这个电路。 在Linux下编写蜂鸣器驱动就需要以下工作: 设备树中创建蜂鸣器节点,加入GP…

【MySQL系列】- SELECT语句执行顺序

【MySQL系列】- SELECT语句执行顺序 文章目录 【MySQL系列】- SELECT语句执行顺序一、MYSQL逻辑查询处理的步骤图二、MYSQL执行顺序详解2.1 执行FROM操作2.2 应用ON过滤器2.3 JOIN外部行2.4 应用WHERE过滤器2.5 GROUP BY分组2.6 应用ROLLUP 或 CUBE2.7 HAVING过滤2.8 处理SELEC…

Mysql数据库 1. SQL基础语法和操作

一、Mysql逻辑结构 一个数据库软件可以包含许多数据库 一个数据库包含许多表 一个表中包含许多字段(列) 数据库软件——>数据库——>数据表——>字段(列)、元组(行) 二、SQL语言基础语法 1.SQL…

01:linux基础---gcc/makefile/gdb

目录 一:GCC 1:简历 2:编译过程 3:编译顺序 A:预处理 B:编译 C:汇编 D:链接 4:编译选项 5:静/动态库 A: 前言 B: 库 C:静态库 D:动态库 6:练习 A: 目录结构 B: 目录结构 二:makefile 1:makefile变量 A:make变量预定义变量 B:make自动化变量 2:3个等…

springboot+html实现密码重置功能

目录 登录注册: 前端: chnangePssword.html 后端: controller: Mapper层: 逻辑: 登录注册: https://blog.csdn.net/m0_67930426/article/details/133849132 前端: 通过点击忘记密码跳转…

滚雪球学Java(53):从入门到精通:SimpleDateFormat类高深用法,让你的代码更简洁!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好…

通讯协议学习之路:USART协议理论

通讯协议之路主要分为两部分,第一部分从理论上面讲解各类协议的通讯原理以及通讯格式,第二部分从具体运用上讲解各类通讯协议的具体应用方法。 后续文章会同时发表在个人博客(jason1016.club)、CSDN;视频会发布在bilibili(UID:399951374) 一、…

把微信好友不小心删了,有什么办法找回?

常见的重新加回微信好友有以下几种: ①通过微信群找回,看有无共同的群,重新将对方加回来 ②通过朋友圈的动态找回 ③如果是加不久的好友,可以在微信新的朋友功能里重新添加 ④通过共同好友,让朋友圈推荐好友名片找…

一键式AI智能剪辑,轻松处理视频,释放无限创意!“

想象一下,您可以在几秒钟内完成一个复杂的视频剪辑,而无需投入大量的时间和精力。现在,这个梦想已经成为现实!我们的新一代AI智能剪辑技术,将使视频处理变得轻松无压力。 第一步:首先进入好简单批量智剪主…

C#上位机序列9: 批量读写+事件广播

1. 读取配置文件及创建变量信息(点位名称,地址,数据类型(bool/short/int/float/long/double)) 2. 读任务&写任务,数据有变化时事件广播通知 using HslCommunication; using HslCommunication.Core; usi…

基于YOLOv8模型的水下目标检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要:基于YOLOv8模型的水下目标检测系统可用于日常生活中检测与定位鱼、水母、企鹅、海鹦、鲨鱼、海星、黄貂鱼,利用深度学习算法可实现图片、视频、摄像头等方式的目标检测,另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统…

34 机器学习(二):数据准备|knn

文章目录 数据准备数据下载数据切割转换器估计器 kNN正常的流程网格多折交叉训练原理讲解距离度量欧式距离(Euclidean Distance)曼哈顿距离(Manhattan Distance)切比雪夫距离 (Chebyshev Distance)还有一些自定义的距离 就请读者自行研究 再识K-近邻算法API选择n邻居的思辨总结…

MySQL分组查询每组最新的一条数据(提供三种实现方法,附带三种方法查询性能比较和分析查询原理)

目录 一、前言二、注意事项三、准备SQL四、错误查询分析4.1、错误原因 五、实现方法5.1、实现方法一(使用 LIMIT 查询)5.2、实现方法二(使用 DISTINCT 查询)5.3、实现方法三(使用 MAX(id) 查询,只适用于自增…

一篇文章讲明白double、float丢失精度的问题

1.背景 1.10.1 1.2000000000000002 发现上面计算的值竟然和数学计算不一致 2. 问题 计算机是通过二进制计算的,如果我们在二进制的视角来看待上面问题,就很容易发现问题了。 例如:把「0.1」转成二进制的表示,然后还原成十进制&…

846. 树的重心

输入样例 9 1 2 1 7 1 4 2 8 2 5 4 3 3 9 4 6输出样例: 4 分析:因为有n-1条边,所以每个点必然会连接到其他点,不存在孤立点,因此,我们从1-n任意点开始dfs都是可以的,因为无论怎么样&#xff0…

mrRobot

一、信息收集 1.访问地址 没啥信息,尝试扫下目录 2.目录扫描 key1 发现有wp-admin/和robots.txt robots.txt里面还拿到了一个密码字典,猜测是爆破wp的网站账号密码的 3.访问wp-admin/ ┌──(root💀kali)-[~/桌面] └─# sort -u fsoci…

Java并发面试题:(六)悲观锁和乐观锁和Java内存模型和CAS原理

悲观锁和乐观锁的区别 什么是悲观锁? 基本上我们理解的操作前对资源加锁,操作完后释放锁。说的都是悲观锁。悲观锁认为所有的资源都是不安全的,随时会被其他线程操作、更改。所以操作资源前一定要加一把锁、防止其他线程访问。 什么是乐观锁&…

基于geojson-vt和canvas的高性能出图

概述 本文介绍基于geojson-vt和canvas,实现node端高性能出图。 效果 实现 1. canvas绘图 import { createCanvas } from canvasconst tileSize 256; const canvas createCanvas(tileSize, tileSize) const ctx canvas.getContext(2d)2. 处理geojson const g…

python二次开发Solidworks:圆形弹簧

目录 1、手动建模 2、python自动建模 1、手动建模 第一步​:草图1,在上视基准面画一个圆心在原点,直径50mm的圆​; 第二步​:草图2,在上视基准面画两条构造线,一条经过原点方向竖直&#xff0…

【jvm】虚拟机栈之局部变量表

目录 一、说明二、代码分析2.1 代码示例2.2 执行javap2.3 jclasslib插件查看 三、对slot的理解3.1 说明3.2 slot索引图3.3 实例方法的局部变量表3.4 long和double类型变量占2个slot 四、slot的重复利用4.1 说明4.2 变量c复用变量b的槽位 五、静态变量与局部变量对比 一、说明 1…