K个一组反转链表

K个一组反转链表

题目:力扣25

给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。

k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。

你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。

在这里插入图片描述
例如:
输入:head = [1,2,3,4,5], k = 2
输出:[2,1,4,3,5]

思路:

1.先反转head开始的前k个节点
2.然后将k+1节点作为head递归调用reverseKGroup
3.将上述两步结果连接起来

代码实现

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public://反转区间[a,b)ListNode* reverse(ListNode* a,ListNode* b){//前驱节点ListNode* pre = NULL;//当前节点ListNode* cur = a;//后继节点ListNode* nxt = NULL;//反转while(cur != b){nxt = cur->next;cur->next = pre;pre = cur;cur = nxt;}return pre;}ListNode* reverseKGroup(ListNode* head, int k) {if(head == NULL)return NULL;ListNode* a = head;ListNode* b = head;for(int i = 1; i <= k; ++i){//不足k个直接返回if(b == NULL)return head;b = b->next;}//记录反转后的头ListNode* newHead = reverse(a,b);//连接反转完成的和未反转的a->next = reverseKGroup(b,k);return newHead;}
};

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

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

相关文章

LangChain: 大语言模型的新篇章

本文介绍了LangChain框架&#xff0c;它能够将大型语言模型与其他计算或知识来源相结合&#xff0c;从而实现功能更加强大的应用。接着&#xff0c;对LangChain的关键概念进行了详细说明&#xff0c;并基于该框架进行了一些案例尝试&#xff0c;旨在帮助读者更轻松地理解LangCh…

GIS杂记(二):Arcgis对采样点进行裁剪,获取指定区域内的采样点

有时候需要对栅格数据进行采样处理&#xff0c;如果采样点过多则会使得采样时间过长&#xff0c;今天在进行数据采样时&#xff0c;使用了1km*1km的渔网建立的采样点&#xff0c;大概有1百万个点&#xff0c;程序运行时间大概4个小时&#xff0c;但是其中有绝大部分数据都是空值…

NotePad++ 正则匹配文件路径

([a-zA-Z]:(([\\\\/])[^\\\\/:*?<>|])*([\\\\/])[^\\\\/:*?<>|]\\.[^\\\\/:*?<>|],)*[a-zA-Z]:(([\\\\/])[^\\\\/:*?<>|])*([\\\\/])[^\\\\/:*?<>|]\\.[^\\\\/:*?<>|]$CTRLH -> 标记 -> 输入上面正则匹配&#xff0c;勾选如下…

HTML5 游戏开发实战 | 俄罗斯方块

俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏&#xff0c;它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。这款游戏看似简单但却变化无穷&#xff0c;游戏过程仅需要玩家将不断下落的各种形状的方块移动、翻转&#xff0c;如果某一行被方块充满了&…

玩转ChatGPT:Code interpreter (vol. 1)

一、写在前面 喜大普奔&#xff0c;GPT-4传说中的Code interpreter插件已经可以用了&#xff01;&#xff01;&#xff01; 二、什么是Code interpreter 代码解释器&#xff08;Code Interpreter&#xff09;是一个工具&#xff0c;它能够读取和执行编程代码。这里有几个主要…

Spring Boot 配置文件

目录 1、配置文件作用 2、配置文件的格式 1、application.properties 配置文件 - 效果演示 2、application.yml 配置文件 - 效果演示 为配置⽂件安装提示插件 - 社区版 idea application.properties 配置文件说明 properties 基本语法 查看更多系统配置项 - properties …

C# MVC 多图片上传预览

一.效果图&#xff1a; 开发框架&#xff1a;MVC&#xff0c;Layui 列表主界面这里就不展示了&#xff0c;可以去看看这篇文章&#xff1a;Layui项目实战&#xff0c;这里讲的是“上传Banner”界面功能&#xff1a; 其中包括&#xff0c;多文件上传&#xff0c;预览&#xff0c…

机器学习|了解数据处理

数据处理是将数据从给定形式转换为更有用和更期望的形式的任务&#xff0c;即使其更有意义和信息。使用机器学习算法&#xff0c;数学建模和统计知识&#xff0c;整个过程可以自动化。这个完整过程的输出可以是任何所需的形式&#xff0c;如图形&#xff0c;视频&#xff0c;图…

【标准】国家标准GB7713-87(科学论文编写格式)

目 录 1 引言 2 定义 2.1 科学技术报告 2.2 学位论文 2.3 学术论文 3 编写要求 4 编写格式 5 前置部分 5.1 封面 5.2 封二 5.3 题名页 5.4 变异本 5.5 题名 5.6 序或前言 5.7 摘要 5.8 关键词 5.9 目次页 6 主体部分 6.1 格式 6.2 序号 6.3 引言(或绪论)…

Linux--Linux的应用市场:yum

先问大家一个问题&#xff1a; 你下载的软件&#xff0c;是从手机上下载的吗&#xff1f; 当然不是了&#xff0c;我手机上要是有这个软件&#xff0c;直接就可以打开使用了&#xff0c;我还下它干嘛。 那既然不是从手机下载的&#xff0c;那是从哪儿下的&#xff1f; 应用…

Rainbond开源

Rainbond的 Gateway API 插件制作实践 Gateway API 作为新一代的流量管理标准&#xff0c;对原有 Ingress 的扩展不规范、移植性差等问题做出了改进。从兼容K8s生态和优化网关体验出发&#xff0c;Rainbond 支持以插件的形式扩展平台网关能力&#xff0c;目前已经有多家社区提供…

Zookeeper

一、概念 它是一个分布式服务框架&#xff0c;是Apache Hadoop 的一个子项目&#xff0c;它主要是用来解决分布式应用中经常遇到的一些数据管理问题&#xff0c;如&#xff1a;统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。 zookeeper文件系统监听通知机…