LeetCode(60)K 个一组翻转链表【链表】【困难】

在这里插入图片描述

目录

    • 1.题目
    • 2.答案
    • 3.提交结果截图

链接: K 个一组翻转链表

1.题目

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

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

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

示例 1:

在这里插入图片描述

输入:head = [1,2,3,4,5], k = 2
输出:[2,1,4,3,5]

示例 2:

在这里插入图片描述

输入:head = [1,2,3,4,5], k = 3
输出:[3,2,1,4,5]

提示:

  • 链表中的节点数目为 n
  • 1 <= k <= n <= 5000
  • 0 <= Node.val <= 1000

进阶: 你可以设计一个只用 O(1) 额外内存空间的算法解决此问题吗?


2.答案

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public static ListNode reverseKGroup(ListNode head, int k) {if (k == 1) {return head;}int length = getLength(head);int index = 0;ListNode node = head;ListNode beforeStart = null;ListNode start = null;ListNode beforeNode = null;while (node != null) {index++;if (index > (length - length % k)) {assert start != null;start.next = node;break;}// 节点交换ListNode nextNode = node.next;if (index % k == 1) {beforeStart = beforeNode;start = node;beforeNode = node;} else if (index % k == 0) {node.next = beforeNode;if (beforeStart == null) {head = node;} else {beforeStart.next = node;}start.next = nextNode;beforeNode = start;} else {node.next = beforeNode;beforeNode = node;}node = nextNode;}return head;}private static int getLength(ListNode head) {int length = 0;while (head != null) {length++;head = head.next;}return length;}
}

3.提交结果截图

在这里插入图片描述

整理完毕,完结撒花~ 🌻

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

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

相关文章

Modbus转Profinet网关使用方法

Modbus转Profinet网关&#xff08;XD-MDPN100/200&#xff09;是用于将Modbus协议和Profinet协议进行转换并进行通迅的设备。Modbus转Profinet网关&#xff08;XD-MDPN100/200&#xff09;无论是新项目还是改造项目都可轻松配置完成通迅互联。 正确的安装和配置对于确保设备的正…

低代码核心能力详解:简化应用开发的新思路

低代码平台作为一种快速地应用开发解决方法&#xff0c;为中小企业实现数字化转型提供了机会。但是&#xff0c;对于一些刚开始触碰低代码平台的企业来说&#xff0c;了解其核心能力是很重要的。本文将详细分析低代码平台的核心能力&#xff0c;并在挑选低代码平台以前为中小企…

云原生之深入解析OOM和CPU节流

一、前言 使用 Kubernetes 时&#xff0c;内存不足 (OOM) 错误和 CPU 节流是云应用程序中资源处理的主要难题&#xff0c;这是为什么呢&#xff1f;云应用程序中的 CPU 和内存要求变得越来越重要&#xff0c;因为它们与云成本直接相关。通过 limits 和 requests &#xff0c;可…

航带模式拍完之后用重建大师跑出来的模型是弧形的,怎么处理?

答&#xff1a;空三设置-更多设置-定位方式中选择pos高精度&#xff0c;再跑一下看看。 重建大师是一款专为超大规模实景三维数据生产而设计的集群并行处理软件&#xff0c;输入倾斜照片&#xff0c;激光点云&#xff0c;POS信息及像控点&#xff0c;输出高精度彩色网格模型&a…

k8s-Pod

1、Pod 简介&#xff1a; (1) 概念&#xff1a; Pod 是 Kubernetes 中创建和管理的&#xff0c;最小的可部署的计算单元。Pod中存储了一组&#xff08;一个或多个&#xff09;容器&#xff0c;以及怎样运行这些容器的声明&#xff0c;这些容器共享存储、网络和环境&#xff0…

早上好,我的leetcode 【hash】(第二期)

写在前面&#xff1a;坚持才是最难的事情 C代码还是不方便写&#xff0c;改用python了&#xff0c;TAT 文章目录 1.两数之和49. 字母异位词分组128.最长连续序列 1.两数之和 你好&#xff0c;梦开始的地方~ https://leetcode.cn/problems/two-sum/description/?envTypestudy…

《打造第二大脑》—如何构建高效的笔记系统

最近看了一本书&#xff0c;因为我也用Obsidian来记笔记&#xff0c;&#xff08;Obsidian之前有介绍过Obsidian使用教程&#xff08;如何构建你的个人知识库&#xff0c;第二大脑&#xff09;&#xff09;看完这本书后发现里面给的方法跟Obsidian很契合&#xff0c;所以就整理…

STM32单片机输出频率及占空比可调的PWM波

一、测试用环境 STM32F103C8T6&#xff0c;HAL库。 只考虑PWM的频率和占空比两个参数&#xff0c;死区、极性、对齐方式等不做讨论。 二、STM32Cube MX配置 1.PWM原理 上图中&#xff0c;定时器向上计数&#xff0c;当CNT<CCRx时&#xff0c;输出0&#xff0c;当CNT>C…

linux下的strerror和perror处理错误函数

strerror和perror是C语言中用于处理错误信息的函数。 strerror函数&#xff1a; strerror函数用于将错误码转换为对应的错误消息字符串。它接受一个整数参数&#xff0c;通常是由系统调用或库函数返回的错误码&#xff0c;然后返回一个描述该错误的字符串。 函数原型&#xff1…

PrimDiffusion:3D 人类生成的体积基元扩散模型NeurIPS 2023

NeurIPS2023 &#xff0c;这是一种用于 3D 人体生成的体积基元扩散模型&#xff0c;可通过离体拓扑实现明确的姿势、视图和形状控制。 PrimDiffusion 对一组紧凑地代表 3D 人体的基元执行扩散和去噪过程。这种生成建模可以实现明确的姿势、视图和形状控制&#xff0c;并能够在…

化学方程式小程序

brief introduction 相信大家上中学时都会被化学方程式折腾得死去活来&#xff0c;尤其是配平&#xff0c;怎么也算不对数字。于是我写出了这款近200行的自动配平程序&#xff0c;这是不是你们黑暗化学中的一丝光亮呢&#xff1f; usage 正常化学式输入&#xff0c;每一种物…

卷积的计算 - numpy的实现 2

卷积的计算 - numpy的实现 2 flyfish PyTorch计算 用于验证结果 import torchconv torch.nn.Conv2d(in_channels1, out_channels1, kernel_size2, stride1)# 定义一个卷积核 W torch.arange(1, 5).view(-1, 1, 2, 2).float()# 创建一个二维图像数据&#xff08;4x4 像素&a…

Ray RLlib User Guides:模型,处理器和动作分布

Ray RLlib用户手册地址 默认模型配置设置 在下面的段落中&#xff0c;我们将首先描述RLlib自动构建模型的默认行为&#xff08;如果您没有设置自定义模型&#xff09;&#xff0c;然后深入了解如何通过更改这些设置或编写自己的模型类来自定义模型。 默认情况下&#xff0c;…

D33|动态规划!启程!

1.动态规划五部曲&#xff1a; 1&#xff09;确定dp数组&#xff08;dp table&#xff09;以及下标的含义 2&#xff09;确定递推公式 3&#xff09;dp数组如何初始化 4&#xff09;确定遍历顺序 5&#xff09;举例推导dp数组 2.动态规划应该如何debug 找问题的最好方式就是把…

软件测试面试八股文(答案解析+视频教程)

1、B/S架构和C/S架构区别 B/S 只需要有操作系统和浏览器就行&#xff0c;可以实现跨平台&#xff0c;客户端零维护&#xff0c;维护成本低&#xff0c;但是个性化能力低&#xff0c;响应速度较慢。 C/S响应速度快&#xff0c;安全性强&#xff0c;一般应用于局域网中&#xf…

Yoast SEO Premium v21.7 Premium WordPress 插件Yoast +子插件介绍

什么是Yoast SEO&#xff1f; Yoast SEO 是 WordPress 的 SEO 插件&#xff0c;可帮助网站所有者针对搜索引擎优化他们的网站。该插件由 Joost de Valk 于 2008 年创建&#xff0c;旨在让每个人都能访问 SEO。今天&#xff0c;Yoast SEO 是全球数百万 WordPress 用户使用的最受…

如何对比云渲染平台优劣?到底哪一家好一些?

云渲染作为共享经济的一种体现&#xff0c;在强大计算资源共享的趋势下对个人用户和渲染团队的作品制作提供了巨大的便利。云渲染服务让CG艺术家无需自己投资昂贵的硬件设备&#xff0c;而可以通过网络提交渲染任务到云平台并利用其强大的共享计算资源&#xff0c;不但有效节约…

利用腾讯微搭平台连接MYSQL

首先&#xff0c;找到控制台 然后再控制台搜索&#xff1a;微搭 然后点击进入&#xff1a; 这里如果是第一次进入&#xff0c;他应该会提示要创建环境。 然后按照这个步骤&#xff1a; 然后进入这个页面&#xff0c;点击编辑器&#xff1a; 然后在这里搜索表格&#xff1a; 点…

Docker常用管理命令

Docker常用管理命令 一、Docker常用管理命令 docker ps 功能&#xff1a;查看正在运行的容器列表。示例&#xff1a;docker ps -a&#xff08;查看所有容器&#xff0c;包括已停止的容器&#xff09;。 docker start <container_id> 功能&#xff1a;启动一个已停止的容…

加州数据集介绍

包含四个城市&#xff1a;Fresno, Modesto, Oxnard, Stockton 数据的原遥感图像tif&#xff08;及地理信息.xml&#xff09;和标注数据csv是分开不同链接的&#xff0c;图像分辨率为 遥感原图像数据 文件解压后包含两种类型.tif和.tif.xml&#xff0c;后者是地理信息系统&am…