【数据结构与算法 经典例题】(C语言)反转链表图文详解

            258650adc14741f987d9eeb54b929d23.png

            💓 博客主页:倔强的石头的CSDN主页 

             📝Gitee主页:倔强的石头的gitee主页

   ⏩ 文章专栏:《数据结构与算法 经典例题》C语言

                                  期待您的关注

1b7335aca73b41609b7f05d1d366f476.gif

目录

一、问题描述

二、解题思路分析

三、代码实现


一、问题描述

二、解题思路分析

通过三个指针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.循环执行反转和移动指针的过程 直到
n3指向空
n2指向最后一个节点
n1指向倒数第二个节点

6.此时再执行最后一次反转 最后一个节点的next指针指向倒数第二个节点

7.最后一次移动节点 
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是原链表的尾节点,反转后的首节点}    
}

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

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

相关文章

uniapp使用uQRCode页面不显示也不报错

我使用的版本是:4.0.6 引入到项目中后根据官方的配置教程进行配置: 但是页面上就是不显示,也不报错,看官网发现步骤也没问题 解决方法: 这句话代表的是uQrcode会被自动引用注册,但是你引过组件库或者别的…

QT treeWidget如何添加虚线

1、添加以下代码即可: ui.treeWidget->setStyle(QStyleFactory::create("windows"));2、效果如下:

基于 vue-element-template 框架添加 tagsview

1. 需求 vue-element-template 是一个基础模板,默认没有 tagsview。所以要手动添加。 参考最全面的集成方案框架 vue-element-admin ,拷贝和修改相关文件到你的项目中。 2. 修改 复制如下文件或文件夹 \src\layout\components\TagsView\src\store\mo…

【ZZULI数据结构实验四】:C语言排序算法大比拼

📃博客主页: 小镇敲码人 💚代码仓库,欢迎访问 🚀 欢迎关注:👍点赞 👂🏽留言 😍收藏 🌏 任尔江湖满血骨,我自踏雪寻梅香。 万千浮云遮碧…

分离式光电液位传感器与浮球开关相比具有哪些优势

分离式光电液位传感器与浮球开关相比有哪些优势?分离式光电液位传感器依据光学原理,在传统光学传感器的基础上进行了改进。其特点是将光学组件分离出来,置于水箱外部感应,而传感器本身则独立于水箱外。这种设计有效解决了浮球开关…

【智能算法】花斑翠鸟优化算法(PKO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2024年,A Bouaouda受到自然界中花斑翠鸟社会行为启发,提出了花斑翠鸟优化算法(Pied Kingfisher Optimizer, PKO)。 2.算法原理 2.1算法思想…

mac安装nigix

1. 查看是否存在 nginx 执行brew search nginx 命令查询要安装的软件是否存在 brew search nginx 2. 安装nginx brew install nginx 3. 查看版本 nginx -v 4. 查看信息 查看ngxin下载的位置以及nginx配置文件存放路径等信息 brew info nginx 下载的存放路径 /usr/loca…

Renesas MCU之使用Keil搭建开发环境

目录 概述 1 软件安装 1.1 软件版本信息 1.2 安装FSP 1.3 安装和配置Keil 2 使用FSP创建工程 2.1 FSP中配置参数 2.2 配置板卡硬件资源 3 Keil中配置项目 3.1 在Keil配置FSP 3.2 添加user src目录 3.3 配置下载项 3.4 测试下载功能 4 使用stm32 NUCLEO板卡的ST-L…

elementplu父级页面怎么使用封装子组件原组件的方法

一、使用原因: 封装了el-table,表格中有多选,父级要根据指定状态,让其选择不上,需要用到elementplus中table原方法toggleRowSelection 附加小知识点:(el-tree刷新树后之前选中的保持高亮setCurr…

11.6 归并排序

目录 11.6 归并排序 11.6.1 算法流程 11.6.2 算法特性 11.6.3 链表排序 11.6 归并排序 归并排序(merge sort)是一种基于分治策略的排序算法,包含图 11-10 所示的“划分”和“合并”阶段。 划分阶段:通过递归不断地…

雷池WAF-动态防护新功能体验

雷池WAF 雷池WAF(Web Application Firewall,网络应用防火墙)是由长亭科技开发的一个网络安全产品,它专注于保护Web应用免受黑客攻击。 今天主要讲的是长亭雷池最近新出的功能:动态防护 安装 雷池WAF支持多种安装方式…

Activiti7 Maven笔记

通过maven完成BPMN的创建,定义流程,部署流程,完成流程等操作 代码整合创建maven项目添加log4j日志配置添加activiti配置文件创建数据库 activitijava类编写程序生成表如果代码运行,没有生成表,可能是没有读取到activiti的配置文件 Activiti数据表介绍类关系图工作流引擎创建默认…

Windows主机信息收集

一、内网环境分析 1、什么是内网渗透 内网渗透: ①在拿到webshell的时候,想办法获得系统信息拿到系统权限,进入到网络系统内部之后收集内部 网络的各种信息,获取内部网络有价值的人员、资产信息。 ②内网渗透的第一步,内网信…

嵌入式linux中线程编程实现详解

大家好,今天主要给大家分享一下,线程的使用,通过具体的实例代码来说明一个线程创建到退出到回收的基本流程,后半部分则会通过实例来说明如何能够控制好线程,从临界资源访问与线程的执行顺序控制上引出互斥锁、信号量的概念与使用方法。 第一:为什么要使用线程 场景分析:…

[数据集][目标检测]电力工地场景下的人头检测数据集VOC+YOLO格式7035张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):7035 标注数量(xml文件个数):7035 标注数量(txt文件个数):7035 标注…

Dockershim 与 Containerd:两种容器运行时的故事

在不断发展的容器化世界中,两个关键组件经常被混淆:Dockershim 和 containerd。虽然它们在管理容器方面都发挥着重要作用,但它们的用途却截然不同。本文深入探讨了它们的功能,深入探讨了 Dockershim 和 containerd 之间的区别。 揭…

SpringBoot——全局异常处理

目录 异常 项目总结 新建一个SpringBoot项目 pom.xml Result(通用的响应结果类) MyBusinessException自定义异常类 GlobalExceptionHandler全局异常处理类 ExceptionController控制器 SpringbootExceptionApplication启动类 参考文章&#xff1a…

对比投入高成本自研推广系统,直接采用SaaS更有效益

推广分销作为一种有效的市场拓展方式,被越来越多的企业所采纳。部分企业会选择投入资源自研一套推广分销系统,但是其实最后发现几年过去了,投入了大量成本,系统仍然是一地鸡毛,还在定义一些基本的属性。 自研推广系统…

基于4G工业路由器的信息发布系统物联网应用方案

随着物联网技术的快速发展,智能信息发布系统已成为城市管理和信息传播的重要工具。而4G工业路由器作为连接信息发布终端与云平台的关键设备,其在提升信息发布效率方面发挥着至关重要的作用。为了提升智能信息发布系统的效率和智能化水平,智联…

【RPG Maker MV 仿新仙剑 战斗场景UI (十)】

RPG Maker MV 仿新仙剑 战斗场景UI (十) 前言角色站位人物站位人物影子 前言 上一期完成了几个功能,虽然没有进行进一步的优化,但基础的功能已经完成,现在记录下已完成及未完成的功能: 战斗菜单 一级战斗菜…