news 2026/5/11 13:49:05

[leetcode] 25. K 个一组翻转链表 Reverse Nodes in k-Group

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[leetcode] 25. K 个一组翻转链表 Reverse Nodes in k-Group

给你链表的头节点 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) 额外内存空间的算法解决此问题吗?

Python实现

思路很直接,就是遍历K个值,然后进行翻转操作,但这个链表容易出错,要多加练习才行。

# Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def reverse(self, head, tail): pre = tail.next p = head while pre!=tail: next_p = p.next p.next = pre pre = p p = next_p return tail, head def reverseKGroup(self, head: Optional[ListNode], k: int) -> Optional[ListNode]: dummy = ListNode(-1) dummy.next = head pre = dummy slow = head while slow: fast = pre for i in range(k): fast = fast.next if not fast: return dummy.next t = fast.next slow , fast = self.reverse(slow,fast) pre.next = slow fast.next = t pre = fast slow = fast.next return dummy.next

另一个带注释的递归思路实现如下:

classSolution:defreverseKGroup(self,head:Optional[ListNode],k:int)->Optional[ListNode]:# 1. Check if there are at least k nodes leftcur=headfor_inrange(k):ifcurisNone:returnhead cur=cur.next# 2. Reverse the k nodespre=Nonecur=headfor_inrange(k):nxt=cur.nextcur.next=pre pre=cur cur=nxt# 3. After reversal, 'head' is now the tail of this group.head.next=self.reverseKGroup(cur,k)returnpre
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/11 13:49:00

手机号定位终极指南:3分钟搭建免费归属地查询系统

手机号定位终极指南&#xff1a;3分钟搭建免费归属地查询系统 【免费下载链接】location-to-phone-number This a project to search a location of a specified phone number, and locate the map to the phone number location. 项目地址: https://gitcode.com/gh_mirrors/…

作者头像 李华
网站建设 2026/5/11 13:47:39

EvalScope性能测试实战:如何精准评估模型推理效率

EvalScope性能测试实战&#xff1a;如何精准评估模型推理效率 【免费下载链接】llmuses A streamlined and customizable framework for efficient large model (LLM, VLM, AIGC) evaluation and performance benchmarking. 项目地址: https://gitcode.com/gh_mirrors/ll/llm…

作者头像 李华
网站建设 2026/5/11 13:46:34

ZYNQ PL端纯Verilog逻辑固化踩坑记:为什么我的bit文件烧不进Flash?

ZYNQ PL端逻辑固化深度解析&#xff1a;从硬件启动原理到避坑实践 第一次尝试在ZYNQ上固化纯PL端逻辑时&#xff0c;很多工程师都会遇到一个令人困惑的现象——明明在普通FPGA上能轻松实现的bit文件烧录&#xff0c;到了ZYNQ平台却屡屡失败。这背后隐藏着ZYNQ芯片独特的启动机制…

作者头像 李华
网站建设 2026/5/11 13:43:16

3步搞定HS2汉化:Honey Select 2中文补丁终极安装教程

3步搞定HS2汉化&#xff1a;Honey Select 2中文补丁终极安装教程 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为Honey Select 2的日语界面而烦恼吗&…

作者头像 李华
网站建设 2026/5/11 13:43:16

微博相册批量下载:三步轻松收藏高清图片

微博相册批量下载&#xff1a;三步轻松收藏高清图片 【免费下载链接】Sina-Weibo-Album-Downloader Multithreading download all HD photos / pictures from someones Sina Weibo album. 项目地址: https://gitcode.com/gh_mirrors/si/Sina-Weibo-Album-Downloader 还…

作者头像 李华
网站建设 2026/5/11 13:43:13

030两两交换链表中的节点

两两交换链表中的节点 题目链接&#xff1a;https://leetcode.cn/problems/swap-nodes-in-pairs/description/?envTypestudy-plan-v2&envIdtop-100-liked 我的解答&#xff1a; public ListNode swapPairs(ListNode head) {if(headnull||head.nextnull){return head;}List…

作者头像 李华