牛客题-链表内区间反转

链表内区间反转
在这里插入图片描述
这是代码

typedef struct ListNode listnode;
struct ListNode* reverseBetween(struct ListNode* head, int m, int n ) {if (head == NULL) {return NULL;}listnode* findhead = head;listnode* findtail = head;listnode* prev = NULL;int count1 = m;int count2 = n;for (int i = 1; i < count1; i++) {prev = findhead;findhead = findhead->next;}for (int j = 1; j < count2; j++) {findtail = findtail->next;}listnode* p1 = findhead;listnode* p2 = p1->next;listnode* p3 = p2->next;while (p1 != findtail) {p2->next = p1;p1 = p2;p2 = p3;if (p3) {p3 = p3->next;}}if (prev) {prev->next = p1; } else {head = p1; }findhead->next = p2; return head;
}

这道题我们的思路是先找到要反转的区间的范围,在通过改变链表指针的指向来反转链表,在把反转链表的头节点和尾节点与原链表相连,我们来画图看看
在这里插入图片描述
我们这里通过两个for循环来找到了区间,找m的时候需要存储上一个节点,因为我们要反转完链表之后,需要把新反转的链表链接到原链表上所以要创建一个prev变量来存放上一个节点。接下来就是反转链表了,p1就是反转链表的头节点我们要用一个while循环来控制p1当p1不等于要反转的区间的尾节点,这里个反转链表的思路是重点。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接下来就是链接链表了,这时候我们反转完的头节点应该是p1我们就把我们存放的prev节点的下一个节点->p1
在这里插入图片描述

然后把我们原来的头节点2的下一个节点指向p2.
在这里插入图片描述
这样我们就完成反转了,

if (prev) {prev->next = p1; } else {head = p1; }

这段代码就是判断特殊情况的,当prev为空的时候,就证明这个反转区间就是从链表头开始的,链表头节点就是反转链表的开始。
在这里插入图片描述

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

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

相关文章

nginx的rewrite重定向

rewrite地址重定向&#xff0c;实现URL重定向的重要指令&#xff0c;它根据regex&#xff08;正则表达式&#xff09;来匹配内容跳转 语法&#xff1a;rewrite regex replacement[flag] rewrite ^/(.*) https://www.baidu.com/$1 permanent; # 这是一个正则表达式&#xff0c;匹…

pdf 文件版面分析--pdfplumber (python 文档解析提取)

pdfplumber 的特点 1、它是一个纯 python 第三方库&#xff0c;适合 python 3.x 版本 2、它用来查看pdf各类信息&#xff0c;能有效提取文本、表格 3、它不支持修改或生成pdf&#xff0c;也不支持对pdf扫描件的处理 import glob import pdfplumber import re from collection…

[前后端基础]图片传输与异步

前后端之间传递照片 在前后端之间传递照片&#xff0c;通常可以采用以下几种方式&#xff1a; Base64 编码传输&#xff1a;将图片转换为 Base64 编码的字符串&#xff0c;然后通过接口传递到后端&#xff0c;后端再将 Base64 字符串转换回图片格式。这种方式简单易行&#xff…

OpenCV 入门(二)—— 车牌定位

OpenCV 入门系列&#xff1a; OpenCV 入门&#xff08;一&#xff09;—— OpenCV 基础 OpenCV 入门&#xff08;二&#xff09;—— 车牌定位 OpenCV 入门&#xff08;三&#xff09;—— 车牌筛选 OpenCV 入门&#xff08;四&#xff09;—— 车牌号识别 OpenCV 入门&#xf…

C#面:简要谈对微软.NET 构架下 remoting 和 webservice 两项技术的理解以及实际中的应用

在微软 .NET 框架下&#xff0c;Remoting 和 WebService 是两种常用的技术&#xff0c;用于实现分布式应用程序的通信和交互。 Remoting&#xff08;远程调用&#xff09;&#xff1a; Remoting是一种用于在不同应用程序域之间进行通信的技术。它允许对象在不同的进程或计算机…

十分钟掌握Java集合之List接口

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

培养逻辑思考力的7大基本方法笔记

《逻辑思考力》一书中介绍的培养逻辑思考力的七大基本方法如下&#xff0c;每种方法都旨在帮助人们更有效地分析问题、制定策略和做出决策&#xff1a; 1. 使解决问题的过程透明化 解释&#xff1a;这种方法强调的是清晰地界定问题解决的步骤&#xff0c;确保每一步都可追踪和…

C++反射之检测struct或class是否实现指定函数

目录 1.引言 2.检测结构体或类的静态函数 3.检测结构体或类的成员函数 3.1.方法1 3.2.方法2 1.引言 诸如Java, C#这些语言是设计的时候就有反射支持的。c没有原生的反射支持。并且&#xff0c;c提供给我们的运行时类型信息非常少&#xff0c;只是通过typeinfo提供了有限的…

微信小程序开发秘籍:揭秘基础库版本与客户端版本的不解之缘【代码示例】

微信小程序开发秘籍&#xff1a;揭秘基础库版本与客户端版本的不解之缘【代码示例】 基础概念&#xff1a;何为基础库&#xff1f;何为客户端&#xff1f;基础库&#xff08;Weixin Mini Program Base Library&#xff09;客户端&#xff08;WeChat Client&#xff09; 版本关系…

leetcode刷题(5): STL的使用

文章目录 56. 合并区间解题思路c实现 55. 跳跃游戏解题思路c 实现 75. 颜色分类解题思路c 实现 36 下一个排列解题思路c 实现 56. 合并区间 题目: 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&a…

每日一练 | 华为认证真题练习Day227

1、MSTP 解决了很多 RSTP 和 STP 单个生成树的缺陷,关于 MSTP 的说明,正确的是&#xff1a; A.每个 MST Instance 都使用单独的 STP 算法,计算单独的生成树. B.每一个 MST Instance 都有一个标识(MST ID) ,MST ID 是一字节的整数. C.默认所有 VLAN 映射到 MST Instance 1. …

Linux(openEuler、CentOS8)企业内网samba服务器搭建(Windows与Linux文件共享方案)

本实验环境为openEuler系统<以server方式安装>&#xff08;CentOS8基本一致&#xff0c;可参考本文) 目录 知识点实验1. 安装samba2. 启动smb服务并设置开机启动3. 查看服务器监听状态4. 配置共享访问用户5. 创建共享文件夹6. 修改配置文件7. 配置防火墙8. 使用windows…

9. 回文数

题目描述 判断一个整数是不是回文整数。 解题思路 可以转成字符串&#xff0c;然后逆序计算。 也可以直接按照第7题一样&#xff0c;把整数的每一位逆序&#xff0c;然后判断和原来的是否相等。 注意负数可以直接返回false。 代码 class Solution { public:bool isPalin…

Hypack 2024 简体中文资源完整翻译汉化已经全部完成

Hypack 2024 简体中文资源完整翻译汉化已经全部完成 Hypack 2024&#xff0c;资源汉化共翻译11065条。毕竟涉及测绘、水文、疏浚等专业术语太多&#xff0c;翻译有很多理解不正确的地方&#xff0c;望各位专业人员指正。 压缩包内包含Hypack 2024、Hypack 2022、Hypack 2021、…

Autoxjs 实践-Spring Boot 集成 WebSocket

概述 最近弄了福袋工具&#xff0c;由于工具运行中&#xff0c;不好查看福袋结果&#xff0c;所以我想将福袋工具运行数据返回到后台&#xff0c;做数据统计、之后工具会越来越多&#xff0c;就弄了个后台&#xff0c;方便管理。 实现效果 WebSocket&#xff1f; websocket是…

Qt应用开发(拓展篇)——图表 QChart

一、前言 QChart是一个图形库模块&#xff0c;它可以实现不同类型的序列和其他图表相关对象(如图例和轴)的图形表示。要在布局中简单地显示图表&#xff0c;可以使用QChartView来代替QChart。此外&#xff0c;线条、样条、面积和散点序列可以通过使用QPolarChart类表示为极坐标…

Python的奇妙之旅——回顾其历史

我们这个神奇的宇宙里&#xff0c;有一个名叫Python的小家伙&#xff0c;它不仅聪明&#xff0c;而且充满活力。它一路走来&#xff0c;从一个小小的编程语言成长为如今全球最受欢迎的编程语言之一。今天&#xff0c;我们就来回顾一下Python的历史&#xff0c;看看它如何从一个…

字体设计_西文字体设计(英文字体设计)

一 西文字体设计基础知识 设计目标和历史成因 设计目标&#xff1a;让眼睛看着舒服的字体 那什么样的字体让眼睛看着舒服呢&#xff1f; 让眼睛看着舒服的字体造型其实是我们记忆里的手写体、自然造型。 所以就能理解西文字体为什么同一笔画&#xff0c;有的地方粗有的地方…

DDPM与扩散模型

很早之前就新建了一个专栏从0开始弃坑扩散模型 ,但发了一篇文章就没有继续这一系列&#xff0c;在这个AIGC的时代&#xff0c;于是我准备重启这个专栏。 整个专栏的学习顺序可以见这篇汇总文章 这是本专栏的第一章 目录 引言生成模型的发展历程 引言 扩散模型( Diffusion Mode…

52页 | 2024大型语言模型行业图谱研究报告(免费下载)

【1】关注本公众号&#xff0c;转发当前文章到微信朋友圈 【2】私信发送 【2024大型语言模型行业图谱研究报告】 【3】获取本方案PDF下载链接&#xff0c;直接下载即可。 如需下载本方案PPT原格式&#xff0c;请加入微信扫描以下方案驿站知识星球&#xff0c;获取上万份PPT解…