【数据结构算法经典题目刨析(c语言)】反转链表(图文详解)
💓 博客主页:C-SDN花园GGbond
⏩ 文章专栏:数据结构经典题目刨析(c语言)
目录
一、题目描述
二、思路分析
三、代码实现
一、题目描述:

二、思路分析 :
通过三个指针n1,n2,n3来实现链表的反转
1.首先初始化 n1为空 n2指向head n3指向head->next

2.然后 让n2的next指针指向n1 完成第一步反转

3. 接下来移动三个指针
n1指向n2
n2指向n3
n3指向n3的下一个节点

4.然后让n2的next指针指向n1 完成反转

5.循环执行反转和移动指针的过程直到
最后一次移动节点
n1指向n2(最后一个节点)
n2指向n3(null)
n3此时已经为空,不能解引用
所以n3指针的移动,要加一个判空的条件
n2作为循环结束的条件
而循环结束时,n1刚好停留在原链表的尾节点,也就是新链表的首节点

三、代码实现 :
struct ListNode* reverseList(struct ListNode* head)
{if (head == NULL)return head;//对空链表做特殊处理else{struct ListNode* n1, * n2, * n3;n1 = NULL;n2 = head;n3 = n2->next;while (n2)//当n2指向空时,链表节点已经遍历完成,next指针修改完成{n2->next = n1;n1 = n2;n2 = n3;if (n3)//对n3判空,防止对空指针解引用n3 = n3->next;}return n1;//当循环结束时,n1是原链表的尾节点,反转后的首节点}
}
相关文章:
【数据结构算法经典题目刨析(c语言)】反转链表(图文详解)
💓 博客主页:C-SDN花园GGbond ⏩ 文章专栏:数据结构经典题目刨析(c语言) 目录 一、题目描述 二、思路分析 三、代码实现 一、题目描述: 二、思路分析 : 通过三个指针n1,n2,n3来实现链表的反转 1.首先初始化 n1为…...
机器学习之争:Python vs R,谁更胜一筹?
一、引言 随着人工智能和大数据的迅速发展,机器学习已成为现代科技的重要组成部分。在医疗、金融、零售、制造等多个领域,机器学习技术的应用无处不在。从数据分析到预测建模,再到深度学习,机器学习正在改变我们的工作和生活方式…...
Vulnhub靶机:JANGOW_ 1.0.1
目录 前言: 一、安装虚拟机Jangow:1.0.1靶机 二、Web部分 前言: 难度:简单,本文使用VirtualBox打开,下载地址: https://download.vulnhub.com/jangow/jangow-01-1.0.1.ova 一、安装虚拟机J…...
Python脚本实现USB自动复制文件
USB驱动器作为常见的数据存储设备,经常用于数据传输和备份。 然而,我们在手动处理文件复制可能效率低下且容易出错。 因此,我们可以利用Python编写脚本来自动化这一过程,提高效率和数据安全性。 准备工作 首先,我们需…...
【C++学习第19天】最小生成树(对应无向图)
一、最小生成树 二、代码 1、Prim算法 #include <cstring> #include <iostream> #include <algorithm>using namespace std;const int N 510, INF 0x3f3f3f3f;int n, m; int g[N][N]; int dist[N]; bool st[N];int prim() {memset(dist, 0x3f, sizeof di…...
第一个 Flask 项目
第一个 Flask 项目 安装环境创建项目启动程序访问项目参数说明Flask对象的初始化参数app.run()参数 应用程序配置参数使用 Flask 的 config.from_object() 方法使用 Flask 的 config.from_pyfile() 方法使用 Flask 的 config.from_envvar() 方法步骤 1: 设置环境变量步骤 2: 编…...
利用 Angular 发挥环境的力量
一.介绍 您是否曾想过如何在不同的环境中为同一应用设置不同的颜色、标题或 API 调用?可以肯定的是,生产 API 和测试 API 是不同的,应谨慎使用。部署时,我们不会在项目的所有地方手动更改所有 API 调用。不应这样做,因…...
Vue3+TypeScript+printjs 实现标签批量打印功能
前言:临时性需求没怎么接触过前端,代码实现有问题及优化点希望大佬可以留言告知一下 开发工具:VS CODE 界面开发:Vue3TypeScriptElementPlus 打印组件:Print-JS 前端打印入口图: 标签页面: …...
微信文件如何直接打印及打印功能在哪里设置?
在数字化时代,打印需求依旧不可或缺,但传统打印店的高昂价格和不便操作常常让人头疼。幸运的是,琢贝打印作为一款集便捷、经济、高效于一体的网上打印平台,正逐渐成为众多用户的首选。特别是通过微信小程序下单,更是让…...
dataX -20240804-master分支
1、相关报错 Error: java.io.IOException: java.lang.RuntimeException: ORC split generation failed with exception: org.apache.orc.impl.SchemaEvolution$IllegalEvolutionException: ORC does not support type conversion from file type struct<nanos:int> (10)…...
【网络】传输层
传输层 一、预备知识1、端口号1、端口号范围划分2、知名端口号3、两个问题4、netstat && iostate5、pidof6、谈下面协议始终铭记两个问题 二、UDP协议(简单)1、UDP协议端格式2、UDP的特点3、面向数据报4、UDP缓冲区 三、TCP协议(重点…...
学生管理系统之更新和删除、筛选
学生管理系统之更新和删除 建立新的窗口 添加组件 进行布局 使用Widget把二个放在一块,作为一列,然后全选进行栅格布局,最后添加弹簧进行微调。 编写增加的槽函数 在主函数中调用对话框...
教您一键批量下载拼多多批发图片信息,节省时间
图片是电商的核心展示手段,高质量、吸引人的图片能显著提升商品吸引力,增强用户体验,促进购买决策。良好的视觉呈现有助于品牌形象的塑造,提高转化率和客户满意度,对电商平台的流量和销售业绩具有直接影响。 使用图快…...
基于微信小程序的微课堂笔记的设计与实现(源码+论文+部署讲解等)
博主介绍:✌全网粉丝10W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术栈介绍:我是程序员阿龙ÿ…...
去噪扩散恢复模型
去噪扩散恢复模型 Bahjat Kawar 计算机科学系 以色列海法理工学院 bahjat.kawarcs.technion.ac.il Michael Elad 计算机科学系 以色列海法理工学院 eladcs.technion.ac.il Stefano Ermon 计算机科学系 美国加利福尼亚州斯坦福大学 ermoncs.stanford.edu …...
Stable Diffusion 官方模型V1.5版本下载
模型描述 Stable Diffusion的官方模型更适合绘制偏写实的风格,如果您想绘制二次元之类的风格,可以考虑下载本站的其它模型。 安装方法 将模型下载后,将会得到一个名为****.ckpt格式的文件,将该文件剪切至你的Stable Diffusion本…...
【算法】双指针-OJ题详解1
双指针-OJ题 移动零(点击跳转)原理讲解代码实现 复写零(点击跳转)原理讲解代码实现 快乐数(点击跳转)原理讲解代码实现 盛最多水的容器(点击跳转)原理讲解代码实现 有效三角形的个数…...
29 两个任务切换(1)
1 这里涉及到进程的切换与之前的 特权级的切换还是不一样的。 2 给每个进程 在 GDT表中,分配一个 TSS, 这个TSS中 保存着这个进程 所用到的 通用寄存器段寄存器 3个可能的栈, 当进行 进程切换的时候,就是切换到 另一个 TSS表&am…...
正则表达式概述
一、正则表达式概述 正则表达式(Regular Expression,简称regex或regexp)是一种强大的文本处理工具,它使用一种特定的模式来描述和匹配一系列符合某个句法规则的字符串。在Python中,我们可以使用re模块来操作正则表达式…...
【C语言】Top K问题【建小堆】
前言 TopK问题:从n个数中,找出最大(或最小)的前k个数。 在我们生活中,经常会遇到TopK问题 比如外卖的必吃榜;成单的前K名;各种数据的最值筛选 问题分析 显然想开出40G的空间是不现实的&#…...
Nanbeige4.1-3B保姆级教程:WebUI中上传文件解析PDF/Markdown内容
Nanbeige4.1-3B保姆级教程:WebUI中上传文件解析PDF/Markdown内容 你是不是经常遇到这样的烦恼:手头有一堆PDF报告、Markdown文档,想快速提炼里面的关键信息,却要一页页翻看,费时又费力?或者,你…...
会 GIS 开发的不一定会前端开发,但会前端开发的一定要会 GIS 开发,这篇文章给你一次性讲清楚
👉 会 GIS 开发的不一定会前端开发,但会前端开发的一定要会 GIS 开发,这篇文章给你一次性讲清楚1. 问题背景(真实场景) 我见过两类开发者: 一类是 GIS 出身,精通坐标系、空间分析,但…...
Oracle数据库PL/SQL循环实战:从12小时到10分钟的性能优化
1. 从12小时到10分钟的蜕变:PL/SQL循环性能优化实战 去年我接手了一个制造业的ETL项目,客户需要将产线检测设备每天产生的2000多列数据与另外两个工艺表关联后导出CSV。最初用Java写的控制台程序跑了整整12小时才完成,产线主管差点把咖啡泼在…...
SQLite µLogger:面向嵌入式系统的轻量级二进制日志引擎
1. 项目概述 Sqlite Logger(微日志器)是一个专为资源受限嵌入式系统设计的轻量级 SQLite 数据持久化库。其核心目标是在仅具备 2 KB SRAM 的微控制器(如 Arduino Uno)上,实现结构化数据的可靠写入、高效检索与断电恢…...
2026最新!10个降AIGC平台全场景通用测评,哪款最能帮你降AI率?
在当前学术写作和内容创作领域,AI生成内容(AIGC)的普及带来了前所未有的便利,但也引发了对原创性和查重率的担忧。越来越多的学生、研究人员以及内容创作者开始关注如何有效降低AI痕迹,提升文本的原创性与自然度。而“…...
MATLAB里给二自由度机械臂装上‘智能大脑’:手把手实现模糊PID轨迹跟踪仿真
为二自由度机械臂注入智能:模糊PID控制的MATLAB实战解析 在机器人控制领域,让机械臂精准跟踪预定轨迹一直是个令人着迷的挑战。传统PID控制器虽然结构简单,但在面对复杂非线性系统时往往力不从心。想象一下,如果给机械臂装上能够&…...
实战分享:用Verilog在FPGA上实现SPI Flash控制器(支持M25P16芯片)
实战分享:用Verilog在FPGA上实现SPI Flash控制器(支持M25P16芯片) 在嵌入式存储系统开发中,SPI Flash因其接口简单、成本低廉而广受欢迎。本文将手把手带你实现一个完整的SPI Flash控制器,重点针对M25P16芯片的特性进行…...
导师推荐!全行业通用降重神器 —— 千笔·专业降AIGC智能体
在AI技术迅速渗透学术写作领域的今天,越来越多的学生、研究人员和职场人士开始依赖AI工具进行论文撰写与内容创作。然而,随着查重系统对AI生成内容的识别能力不断提升,"AI率超标"问题逐渐成为困扰众多作者的核心难题。无论是知网、…...
Harmonyos应用实例160:数据分析与决策
应用实例十:数据分析与决策 知识点:第二十章《数据的分析》—— 用样本估计总体。 功能:模拟“鱼塘捕鱼”问题。学生先捕捞一部分鱼做标记放回,再随机捕捞抽样,输入抽样中有标记的鱼的数量,应用估算鱼塘总数,体验样本估计总体的统计思想。 @Entry @Component struct …...
合宙1.8寸LCD屏对比测试:硬件SPI vs 软件模拟SPI在STM32F4上的性能差异
合宙1.8寸LCD屏性能对决:硬件SPI与软件模拟SPI在STM32F4平台的深度实测 当你在嵌入式项目中需要驱动小型LCD屏幕时,SPI接口的选择往往成为关键决策点。合宙1.8寸ST7735s驱动的LCD屏因其性价比高、接口简单而广受欢迎,但开发者常面临一个基础却…...
