k个一组反转链表

题目

题目链接

. - 力扣(LeetCode)

题目描述

代码实现

class Solution {
public:ListNode* reverseKGroup(ListNode* head, int k) {if(k == 1) return head;//特殊情况ListNode *cur = head;for(int i = 1; i < k; i++){if(cur == nullptr ||cur->next == nullptr) return head;else cur = cur->next;}ListNode *next = cur->next;cur->next = nullptr;reverseList(head);ListNode *p = reverseKGroup(next, k);head->next = p;return cur;}ListNode* reverseList(ListNode* p){//完成链表反转if(p->next == nullptr || p == nullptr)  return p;ListNode *newHead = reverseList(p->next);p->next->next = p;p->next = nullptr;return newHead;}
};

思路分析

首先,这题我用到的递归的思路。

1、在链表中找到k个节点,从右边断开,成为独立的一个链表,完成反转。

2、完成反转的尾节点和后边完成k个节点反转的链表连接起来。

3、考虑递归的出口,当节点不足k个的时候,直接返回头节点即可。

4、最后考虑特殊情况,即当k为1的时候,直接返回头节点即可。

ps:上边的反转链表部分可以参考我的这篇博文

反转链表+牛客-CSDN博客

图示如下。

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

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

相关文章

Seurat 中的数据可视化方法

本文[1]将使用从 2,700 PBMC 教程计算的 Seurat 对象来演示 Seurat 中的可视化技术。您可以从 SeuratData[2] 下载此数据集。 SeuratData::InstallData("pbmc3k")library(Seurat)library(SeuratData)library(ggplot2)library(patchwork)pbmc3k.final <- LoadData(…

[创业之路-96/管理者与领导者-138] :研发与生产的比较,一个是技术、设计、功能、性能,一个是流程、效率、成本和质量、供应链

目录 前言&#xff1a; 一、概述 二、研发与生产在目标和职责的区别 三、研发与生产在关注重点的区别 四、设计与制造的区别 五、研发与生产在时间范围的区别 六、研发与生产在人才技能的区别 七、研发与生产在风险管理的区别 前言&#xff1a; 看到一个奇怪的现象&am…

【wine】解决 0024:fixme:msctf:KeystrokeMgr_TestKeyUp STUB:(00A3D508)

故障日志 0024:fixme:msctf:KeystrokeMgr_TestKeyUp STUB:(00A3D508) AI分析 这些消息表示Wine对IE内核组件以及IME&#xff08;Input Method Editor&#xff0c;输入法编辑器&#xff09;的支持不完全。特别是涉及文本输入、拖放事件、属性变化通知等功能。 解决 winetrick…

【论文阅读】单词级文本攻击TAAD2.2

TAAD2.2论文概览 0.前言1-101.Bridge the Gap Between CV and NLP! A Gradient-based Textual Adversarial Attack Frameworka. 背景b. 方法c. 结果d. 论文及代码 2.TextHacker: Learning based Hybrid Local Search Algorithm for Text Hard-label Adversarial Attacka. 背景b…

python爬虫(一)

一、python中的NumPy模块&#xff08;数据的存储和处理&#xff09; 这里是下载完成之后的表现 &#xff08;1&#xff09;创建数组 1、使用array&#xff08;&#xff09;函数创建数组 使用array函数可以创建任意维度的的数组 下面是一个创建二维数组的代码示例 下面是代码…

java集合(泛型数据结构)

1.泛型 1.1泛型概述 泛型的介绍 泛型是JDK5中引入的特性&#xff0c;它提供了编译时类型安全检测机制 泛型的好处 把运行时期的问题提前到了编译期间 避免了强制类型转换 泛型的定义格式 <类型>: 指定一种类型的格式.尖括号里面可以任意书写,一般只写一个字母.例如: …

【力扣 - 三数之和】

题目描述 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。…

PostgreSQL开发与实战(6.2)体系结构2

作者&#xff1a;太阳 二、逻辑架构 graph TD A[database] -->B(schema) B -->C[表] B -->D[视图] B -->E[触发器] C -->F[索引] tablespace 三、内存结构 Postgres内存结构主要分为 共享内存 与 本地内存 两部分。共享内存为所有的 background process提供内…

excel中去除公式,仅保留值

1.单个单元格去除公式 双击单元格&#xff0c;按F9. 2.批量去除公式 选中列然后复制&#xff0c;选择性粘贴&#xff0c;选值粘贴

windows server 2019 激活系统时点击“更改产品密钥”无反应的解决方案

一、问题现象 点击“更改产品密钥”没反应。 二、解决方案 使用slmgr命令&#xff1a; 打开命令提示符&#xff08;管理员&#xff09;&#xff0c;然后尝试使用slmgr命令来手动输入密钥和激活Windows。例如&#xff1a; slmgr.vbs /ipk <您的产品密钥>slmgr.vbs /ato 备…

软件测试技术分享 | 测试环境搭建

被测系统的环境搭建&#xff0c;是我们作为软件测试人员需要掌握的技能。 被测系统AUT (Application Under Test) 常见的被测系统即需要被测试的 app&#xff0c;网页和后端服务。大致分为两个方面移动端测试和服务端测试&#xff0c;如下图所示&#xff1a; 常见的被测系统类…

从0搭建springboot

1、安装Java开发工具包&#xff08;JDK&#xff09;和 Maven构建工具 2、使用IDE&#xff0c;直接在IDE中创建一个新的Maven项目&#xff0c;并选择合适的模板或者根据需要进行配置 3、添加Spring Boot依赖 在你的pom.xml文件中添加Spring Boot相关的依赖。你至少需要添加sp…

一次HW红初面试

一、描述外网打点的流程&#xff1f; 靶标确认、信息收集、漏洞探测、漏洞利用、权限获取。最终的目的是获取靶标的系统权限/关键数据。 在这个过程中&#xff0c;信息收集最为重要。掌握靶标情报越多&#xff0c;后续就会有更多的攻击方式去打点。比如&#xff1a; 钓鱼邮件…

Flink 大数据 学习详情

参考视频&#xff1a; 尚硅谷大数据Flink1.17实战教程从入门到精通_哔哩哔哩_bilibili 核心目标&#xff1a; 数据流上的有状态的计算 具体说明&#xff1a; Apache Flink是一个 框架 和 分布式处理引擎&#xff0c;用于对 无界&#xff08;eg&#xff1a;kafka&#xff09; 和…

3、Redis Cluster集群运维与核心原理剖析

Redis集群方案比较 哨兵模式 在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态&#xff0c;如果master节点异常&#xff0c;则会做主从切换&#xff0c;将某一台slave作为master&#xff0c;哨兵的配置略微复杂&#xff0c;并且性能和高可用性…

服务器CPU有哪些优点?

服务器CPU是服务器硬件配置中十分重要的组成部分之一&#xff0c;服务器CPU能够影响着服务器的处理速度和存储容量等多方面的性能特征&#xff0c;能够保证服务器的稳定性&#xff0c;接下来我们就具体了解一下服务器CPU的优点有哪些。 服务器CPU有着大量的缓存空间&#xff0c…

【C语言】冒泡排序

概念 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单的排序算法&#xff0c;它重复地遍历要排序的列表&#xff0c;一次比较两个元素&#xff0c;并且如果它们的顺序错误就把它们交换过来。通过多次的遍历和比较&#xff0c;最大&#xff08;或最小&#xff09;的元素…

数智化转型的新篇章:企业如何在「数据飞轮」理念中寻求增长?_光点科技

在当今的数字化浪潮中&#xff0c;企业对数据的渴求与日俱增。数据不再仅是辅助决策的工具&#xff0c;而是成为推动业务增长的核心动力。自从「数据中台」概念降温后&#xff0c;企业纷纷探寻新的数智化路径。在这个过程中&#xff0c;「数据飞轮」作为一种新兴的理念&#xf…

Blazor系统教程(.net8)

Blazor系统教程 1.认识 Blazor 简单来讲&#xff0c;Blazor旨在使用C#来替代JavaScript的Web应用程序的UI框架。其主要优势有&#xff1a; 使用C#编写代码&#xff0c;这可提高应用开发和维护的效率利用现有的NET库生态系统受益于NET的性能、可靠性和安全性与新式托管平台(如…

prometheus配置grafana看板及alert告警文档

【1】、环境说明&#xff1a; Promethues Web网页地址&#xff1a; Grafana Web网页地址&#xff1a; Exporter&#xff08;kafka接口&#xff09; Web网页地址&#xff1a; 监控部署服务器地址&#xff1a; 【2】、Promethues rules配置 打开Promethues Web网页地址进入Graph模…