25. K 个一组翻转链表
25. K 个一组翻转链表
给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。
k 是一个正整数,它的值小于或等于链表的长度。
如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。
进阶:
你可以设计一个只使用常数额外空间的算法来解决此问题吗?
你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。
示例 1:
输入:head = [1,2,3,4,5], k = 2
输出:[2,1,4,3,5]
code
/*** Definition for singly-linked list.* type ListNode struct {* Val int* Next *ListNode* }*/
func reverseKGroup(head *ListNode, k int) *ListNode {// 判断长度是否够 K,不够就直接返回了current := headfor i := 0; i < k; i++ {if current == nil {return head}current = current.Next}pre := reverseList(head, current)// 递归,反转剩余的列表,原来的头结点反转后就变成了现在的尾节点,再把反转之后的剩余列表拼起来head.Next = reverseKGroup(current, k)// 返回新的头结点return pre
}func reverseList(head *ListNode, current *ListNode) *ListNode {if head == current || head.Next == current {return head}temp := headnode := reverseList(head.Next, current)temp.Next.Next = temptemp.Next = currentreturn node
}
25. K 个一组翻转链表相关推荐
- Leetcode-递归/反转链表模板-25. K 个一组翻转链表
题目25. K 个一组翻转链表: 题解: 模拟 以K个为一组,进行常规反转,重点是要保留反转前的头节点,以及第K+1个节点,将其反转之后连接起来 代码: /*** Definition for sin ...
- 【每日算法/刷穿 LeetCode】25. K 个一组翻转链表(困难)
题目描述 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 示例: ...
- leetcode C++ 25. K 个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。
一.思路: 先实现两个节点翻转,再实现k个节点翻转,最后实现一组一组翻转 二.C++代码: class Solution { public:ListNode* swap(ListNode *f1, L ...
- 力扣题目——25. K 个一组翻转链表
注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个 ...
- 力扣 25. K 个一组翻转链表
题目 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 进阶: 你 ...
- leetcode 25. Reverse Nodes in k-Group | 25. K 个一组翻转链表(Java)
题目 https://leetcode.com/problems/reverse-nodes-in-k-group/ 题解 乍一看以为很容易:每 k 个节点翻转,若剩余不足 k 个,则不变.没有什么技 ...
- LeetCode 25. K 个一组翻转链表
https://leetcode-cn.com/problems/reverse-nodes-in-k-group/ 难度:困难 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. ...
- 每隔k次反转一次 链表_leetcode 25 K个一组翻转链表(c++)
### 题目 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 说 ...
- Leetcode 25.K个一组翻转链表
难度:困难 频率:185 **题目:**给你一个链表,每K个节点一组进行翻转,清你返回翻转后的链表. K是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是K的整数倍,那么请将最后胜于的节点保 ...
最新文章
- mui 微信支付 与springMVC服务器交互
- dw可以编辑java吗_为什么很多人说 Java 不适合编写桌面应用?
- nginx+mysql+php
- 由《我也能做CTO》引起的作者与读者的交流
- 深入了解SpringCloud Hystrix
- 从国际站 - M 站建设谈开发者产品思维
- React之函数式组件
- 修改默认python版本
- 十字星文化获数千万元A轮融资,腾讯持续下注
- uboot第一阶段详细分析
- 自动驾驶 4-1 二维运动学建模Kinematic Modeling in 2D
- 5 windows PE COFF
- 1521 一维战舰 水题
- Activiti会签
- 计算机学院杨洋,杨洋-地球科学与技术学院
- MySQL深翻页、MySQL跳页
- 超全园林 景观cc0高清摄影图片素材网站整理
- 基于C4D的3d设计
- 看过这100个知识点,模电其实也不难
- node JS獲取GPS_node学习笔记(三十八)