反转链表II


江湖一笑浪滔滔,红尘尽忘了


题目

示例

 



       思路 

链表这部分的题,不少都离不开单链表的反转,参考:反转一个单链表

这道题加上哨兵位的话会简单很多,如果不加的话,还需要分情况一下,像是从头节点开始反转还是头节点以后开始反转,有了哨兵位后就只有一种情况了。

malloc一个哨兵位,next指向head,遍历两次,一次找起点,,开始节点的前一个节点保存下来,为了连接reverse返回的节点地址;一次找结束,结束的节点next节点保存下来,并使该节点的next指针置空,剩下的就是连接的问题,比较简单。

 



代码 

struct ListNode* reverse(struct ListNode* head)
{struct ListNode* n1 = NULL;struct ListNode* n2 = head;struct ListNode* n3 = NULL;if(n2)n3 = n2->next;while (n2){n2->next = n1;n1 = n2;n2 = n3;if (n3)n3 = n3->next;}return n1;
}struct ListNode* reverseBetween(struct ListNode* head, int left, int right)
{if(head == NULL || left >= right){return head;}struct ListNode* phead = malloc(sizeof(struct ListNode));phead->next = head;struct ListNode* prev = NULL;struct ListNode* cur1 = phead;struct ListNode* cur2 = phead;struct ListNode* Back = NULL;struct ListNode* next = NULL;int num1 = left;int num2 = right;while(num1--){prev = cur1;cur1 = cur1->next;}while(num2--){cur2 = cur2->next;}next = cur2->next;cur2->next = NULL;Back = reverse(cur1);prev->next = Back;int num = right - left;while(num--){Back = Back->next;}if(Back)Back->next = next;head = phead->next;free(phead);return head;
}


 

个人主页:Lei宝啊 

愿所有美好如期而遇

 

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

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

相关文章

淘宝Tmall1688京东API接口系列,海量数据值得get!

Api接口也就是所谓的应用程序接口,api接口的全称是Application Program Interface,通过API接口可以实现计算机软件之间的相互通信,开发人员可以通过API接口程序开发应用程序,可以减少编写无用程序,减轻编程任务&#x…

HJ53 杨辉三角的变形

以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数、左上角数和右上角的数,3个数之和(如果不存在某个数,认为该数就是0)。 求第n行第一个偶数出现的位置。如果没有偶数…

2023年计算机设计大赛国三 数据可视化 (源码可分享)

2023年暑假参加了全国大学生计算机设计大赛,并获得了国家三等奖(国赛答辩出了点小插曲)。在此分享和记录本次比赛的经验。 目录 一、作品简介二、作品效果图三、设计思路四、项目特色 一、作品简介 本项目实现对农产品近期发展、电商销售、灾…

删除链表的中间节点

题目: 示例: 思路: 这个题类似于寻找链表中间的数字,slow和fast都指向head,slow走一步,fast走两步,也许你会有疑问,节点数的奇偶不考虑吗?while执行条件写成fast&&…

「隐语小课」拆分学习之“水平拆分学习”

一、引言 拆分学习是 2018 年由 MIT 最先提出的分布式算法。本文结合该领域的相关英文文献,介绍水平拆分学习的基本方法,同时还将对比拆分模型与中心化模型、联邦模型在不同条件下模型效率和准确性。拆分学习作为主流的隐私计算学习范式之一&#xff0c…

Python学习笔记_进阶篇(二)_django知识(一)

本章简介: Django 简介Django 基本配置Django urlDjango viewDjango 模板语言Django Form Django 简介 Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来…

亚马逊云科技 云技能孵化营——机器学习心得

亚马逊云科技 云技能孵化营机器学习心得 前言什么是机器学习?机器学习如何解决业务问题?什么时候适合使用机器学习模型?总结 前言 很荣幸参加了本次亚马逊云科技云技能孵化营,再本期的《亚马逊云科技云技能孵化营》中&#xff0c…

LeetCode算法心得——k-avoiding 数组的最小总和(标记数组)

大家好,我是晴天学长,这是一个细节题和一部分的思维题哈! 2) .算法思路 k-avoiding 数组的最小总和 1,填充一个1到n 的Boolean的数组 要n个数,但是数组大小不能确定。 所以建立1000的大小。 2.遍历筛选,如果数组中有这…

关于chromedriver.exe一系列问题的解决办法

最新 chromedriver.exe下载地址:https://googlechromelabs.github.io/chrome-for-testing/#stable 下载最新版本的 chromedriver.exe 将其解压在 python.exe 同目录下,以及Chrome 的路径下 例如: C:\Program Files\Google\Chrome\Applicati…

(2023)Linux安装pytorch并使用pycharm远程编译运行

(2023)Linux安装pytorch并使用pycharm远程编译运行 安装miniconda 这部分参考我这篇博客的前半部分Linux服务器上通过miniconda安装R(2022)_miniconda 安装r_Dream of Grass的博客-CSDN博客 创建环境 创建一个叫pytorch的环境…

springMVC 已解密的登录请求

问题描述: 解决方案: 1.对用户所输入的密码在页面进行MD5加密并反馈至密码输入框。 2. 手动生成SSL安全访问证书;在此不做介绍,相关方法可通过网上查找; 3. 将产品HTTP访问方式改为SSL安全访问方式;在Ap…

postman接口参数化设置

为什么需要参数化? 我们在做接口测试的过程中,会遇到需要测试同一个接口使用不同的数据的情况,如果每次去一个个填写数据就太麻烦了,这时我们就需要用到接口参数化,我们把数据单独的存放在一个文件中管理,…

根据学生学习水平量身定制指导以促进知识蒸馏的效果

文章目录 Tailoring Instructions to Student’s Learning Levels Boosts Knowledge Distillation一、PPT内容P1 BackgroundP2 L2T--online distillationP3 L2T--Meta distillationP4 Approach--LGTMP5 Distillation influenceP6 Finite difference approximationP7 Teachers a…

Python正则表达式中re.sub自定义替换方法正确使用方法

嗨喽,大家好呀~这里是爱看美女的茜茜呐 在使用正则替换时,有时候需要将匹配的结果做对应处理,便可以使用自定义替换方法。 re.sub的用法为: re.sub(匹配表达式,替换字符或替换函数,替换次数,其…

[oneAPI] 基于BERT预训练模型的英文文本蕴含任务

[oneAPI] 基于BERT预训练模型的英文文本蕴含任务 Intel DevCloud for oneAPI 和 Intel Optimization for PyTorch基于BERT预训练模型的英文文本蕴含任务语料介绍数据集构建 模型训练 结果参考资料 比赛:https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0…

STM32——RTC实时时钟

文章目录 Unix时间戳UTC/GMT 时间戳转换BKP简介BKP基本结构读写BKP备份寄存器电路设计关键代码 RTC简介RTC框图RTC基本结构硬件电路RTC操作注意事项读写实时时钟电路设计关键代码 Unix时间戳 Unix 时间戳(Unix Timestamp)定义为从UTC/GMT的1970年1月1日…

redis 6个节点(3主3从),始终一个节点不能启动

redis节点,始终有一个节点不能启动起来 1.修改了配置文件 protected-mode no,重启 修改了配置文件 protected-mode no,重启redis问题依然存在 2、查看/var/log/message的redis日志 Aug 21 07:40:33 redisMaster kernel: Out of memory: K…

数据结构(3)

线性表是多个具有相同特征的数据的有限序列。 前驱元素:A在B前面,称A为B的前驱元素。 后继元素:B在A后面,称B为A的后继元素。 线性表特征: 1.一个元素没有前驱元素,就是头结点; 2.最后一个…

湖北黄石三维扫描文物保护修复文物建模3d打印-CASAIM中科广电

三维激光扫描技术在博物馆领域的运用,主要在以下3个方面:文物保护、文物数字化、虚拟博物馆。随着时间的流逝和人类活动的影响,文物不可避免地会受到来自自然或者人为的侵蚀和破坏。由于CASAIM三维激光扫描技术具有不用接触被测量目标、扫描速…

胖小酱之身后事

1)小孩杰克就是艾略奥特童年的投影,从小被黑恶势力欺负,同活着却已死去的妈妈-----活死人-----生活在一起,对死亡有种天然的亲近,极端厌恶只会呼吸、大小便的活死人,他认为自己必须埋葬掉他们。小孩杰克在剧…