发布时间:2026/7/17 20:59:55
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/7/17 20:59:55

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

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

2026/7/17 20:59:55

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

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

2026/7/17 22:00:01

DeepSeek API 实战:从接入到搭建你自己的 AI 助手

DeepSeek API 实战:从接入到搭建你自己的 AI 助手 最近做项目需要接入大模型 API,对比了一圈最终选了 DeepSeek。原因很简单:便宜、中文效果好、兼容 OpenAI 协议。 这篇文章记录我从零接入到搭建一个可用 AI 助手的全过程,踩过…

2026/7/17 22:00:01

一针见血!用JSLeakWatcher解决HarmonyOS内存泄漏难题

本原创文章帖发布在华为开发者联盟社区,欢迎开发者前往访问评论交流,更多与该内容相关讨论,请点击原帖查看: 一针见血!用JSLeakWatcher解决HarmonyOS内存泄漏难题-华为开发者话题 | 华为开发者联盟 一、为什么你的Harm…

2026/7/17 22:00:01

HarmonyOS应用性能监测服务APMS-崩溃问题定位分析指导

本原创文章帖发布在华为开发者联盟社区,欢迎开发者前往访问评论交流,更多与该内容相关讨论,请点击原帖查看: HarmonyOS应用性能监测服务APMS-崩溃问题定位分析指导-华为开发者话题 | 华为开发者联盟 版本刚上线,崩溃告…

2026/7/17 22:00:01

HarmonyOS应用性能监测服务APMS-故障分析:快速定位线上崩溃根因

本原创文章帖发布在华为开发者联盟社区,欢迎开发者前往访问评论交流,更多与该内容相关讨论,请点击原帖查看: HarmonyOS应用性能监测服务APMS-故障分析:快速定位线上崩溃根因-华为开发者话题 | 华为开发者联盟 线上崩溃…

2026/7/17 22:00:01

HarmonyOS应用性能监测服务APMS-故障指标:多维度量你的应用健康

本原创文章帖发布在华为开发者联盟社区,欢迎开发者前往访问评论交流,更多与该内容相关讨论,请点击原帖查看: HarmonyOS应用性能监测服务APMS-故障指标:多维度量你的应用健康-华为开发者话题 | 华为开发者联盟 你的应用…

2026/7/17 21:55:00

Ubuntu 22.04中Chrome中文字体显示异常的解决方案

1. 问题现象与根源分析最近在Ubuntu 22.04 LTS上使用Chrome浏览器时,发现中文字体显示异常混乱——有些页面显示为宋体,有些变成黑体,还有些直接变成无法辨认的方块字。这种情况在访问中文网站、查看PDF文档或使用在线文档工具时尤为明显。经…

2026/7/17 5:59:06

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/17 1:21:45

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/17 7:39:19

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/17 0:04:23

BiSheng JDK-build性能调优:构建速度提升30%的优化策略

BiSheng JDK-build性能调优:构建速度提升30%的优化策略 【免费下载链接】bishengjdk-build BiSheng JDK build and test scripts - common across all releases/versions 项目地址: https://gitcode.com/openeuler/bishengjdk-build 前往项目官网免费下载&am…

2026/7/17 14:59:44

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…