JAVA练习299- K 个一组翻转链表

发布时间:2026/10/25 22:13:56

JAVA练习299- K 个一组翻转链表 题目概览给你链表的头节点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]提示链表中的节点数目为n1 k n 50000 Node.val 1000进阶你可以设计一个只用O(1)额外内存空间的算法解决此问题吗来源25. K 个一组翻转链表 - 力扣LeetCode解题分析方法模拟定义两个指针 a 和 ba 正常遍历b 指向 a - k 的位置即 a 的起始位置用一个变量 times 进行计数当 times k将 a - k 到 a 位置的链表进行反转不会反转可见 JAVA练习291- 反转链表-CSDN博客这里需要注意将 a - k - 1 位置的指针指向 aa - k 位置指针指向 a 1然后 times 清零b 指向当前位置a 继续遍历即可。时间复杂度O(n)空间复杂度O(1)/** * 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 ListNode reverseKGroup(ListNode head, int k) { ListNode a new ListNode(), b head, result null; a.next head; int times 1; while(b ! null) { if (times k) { b b.next; times; } else { ListNode tempB b.next; ListNode tempA a.next; reverse(a, a.next, b.next); a tempA; times 1; if (result null) { result b; } b tempB; } } return result; } private void print(ListNode a) { StringBuilder sb new StringBuilder(); while(a ! null) { sb.append(a.val); sb.append(,); a a.next; } System.out.println(sb.toString()); } private void reverse(ListNode preA, ListNode a, ListNode b) { ListNode cur a, pre b; while(cur ! b) { ListNode temp cur.next; cur.next pre; pre cur; cur temp; } preA.next pre; } }
延伸阅读

更多相关文章

2026/10/25 5:14:41

Kotlin 作用域函数:let/apply 工程选型

文章目录第 1 章 从嵌套判空到表达式链:为什么需要作用域函数原理补充踩坑动手练第 2 章 五函数一张表:it、this 与返回值决定选型踩坑动手练第 3 章 let:空安全映射与局部作用域原理补充踩坑动手练第 4 章 apply 与 lazy:对象配置…

2026/10/23 15:30:10

Ubuntu必备软件推荐与安装指南

1. Ubuntu常用软件概览 作为一名Linux系统管理员,我使用Ubuntu系统已有8年时间。在这期间,我积累了大量实用的软件使用经验。对于刚接触Ubuntu的新手来说,选择合适的软件是提升使用体验的关键第一步。与Windows系统不同,Ubuntu的软…

2026/10/26 16:59:45

POJ 3530(A Modular Arithmetic Challenge-类欧几里得)

Given four positive integers M, D, L, R, your task is to find the minimal non-negative integer x which satisfies L ≤ ( D x mod M ) ≤ R, where mod is the remainder operation 类欧几里得&#xff0c;复杂度log #include<cstdio> #include<cstring> #…

2026/10/26 16:59:45

PyTorch实现gPINN求解Allen-Cahn方程的梯度增强技术

1. 项目背景与核心挑战Allen-Cahn方程作为描述相变过程的经典非线性偏微分方程&#xff0c;在材料科学、生物膜动力学等领域有广泛应用。传统数值方法在处理具有多非常陡峭区域的Allen-Cahn方程时&#xff0c;往往面临网格划分困难、计算量爆炸等问题。我们团队在PyTorch框架下…

2026/10/26 16:59:45

C语言中前置++与后置++的底层原理与最佳实践

1. 前置与后置的本质区别 在C语言中&#xff0c;运算符的前置&#xff08;i&#xff09;和后置&#xff08;i&#xff09;形式虽然都能实现变量自增1的效果&#xff0c;但它们的底层机制和编译行为存在本质差异。理解这个差异是正确使用它们的关键。 1.1 运算符的返回值差异 …

2026/10/26 16:59:45

Python爬虫实战:安居客租房数据抓取、清洗与分析全链路

简介&#xff1a;这份资源围绕安居客武汉地区出租房信息展开&#xff0c;完整覆盖从数据爬取、清洗到分析可视化的全流程&#xff0c;适合正在学习Python爬虫、需要完成课程设计或毕业设计的学生&#xff0c;以及想了解真实数据采集项目如何落地的人群。压缩包共14个文件&#…

2026/10/26 16:59:45

马尾扎法进阶指南:从高颅顶到发际线守护的实用技巧

1. 马尾贴头皮的真相&#xff1a;为什么别人扎的是氛围感&#xff0c;你扎的是紧箍咒1.1 时间差、手感差和“反光发缝”先说不客气的大实话&#xff1a;马尾人人会扎&#xff0c;但扎得好看是另一门手艺。我翻自己过去一年的照片&#xff0c;发现十个造型里至少有六个是马尾出镜…

2026/10/26 16:54:45

cc-safety-net:前端运行时风险的CLI守门员

1. 这不是又一个 CLI 工具介绍——cc-safety-net 是什么&#xff0c;为什么它值得你花 5 分钟认真读完“cc-safety-net”这个名字乍看像某个内部代号&#xff0c;甚至容易被误读成“CC 安全网”或“Code Coverage Safety Net”。但实际它是一个轻量、专注、不依赖全局环境的前端…

2026/10/26 0:20:20

全国计算机二级C语言真题PDF高效刷题指南

简介&#xff1a;这份PDF是全国计算机二级C语言考试的试题与答案解析&#xff0c;专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/26 1:53:47

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介&#xff1a;一份以实战为导向的Python爬虫入门资源&#xff0c;面向具备基本编程基础、希望快速掌握网络数据抓取的初学者&#xff0c;可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档&#xff0c;完整演示从网页中提取 标题…

2026/10/26 0:20:17

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介&#xff1a;这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档&#xff0c;压缩包大小七十八KB&#xff0c;内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开&#xff1a;先构造一个极点位于单位圆内…

2026/10/26 0:00:48

Nested Learning:解决AI灾难性遗忘的分层记忆架构

1. 为什么AI需要"记忆"能力&#xff1f;在传统深度学习模型中&#xff0c;我们常遇到一个根本性问题&#xff1a;模型在处理新任务时&#xff0c;往往会完全遗忘之前学到的知识。这种现象被业界称为"灾难性遗忘"(Catastrophic Forgetting)。想象一下&#…

2026/10/26 0:00:48

企业级大模型应用:OCR预处理、Dify编排与DeepSeek落地实战

1. 这不是“用大模型”&#xff0c;而是重构工作流的起点“大模型的应用和工具”——这八个字现在被贴在无数技术分享、招聘JD、内部立项书的标题栏里&#xff0c;但绝大多数人点进去后看到的&#xff0c;是零散的API调用示例、几个开源UI截图、或者一句“接入LLM就能降本增效”…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑