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 个一组翻转链表相关推荐

  1. Leetcode-递归/反转链表模板-25. K 个一组翻转链表

    题目25. K 个一组翻转链表: 题解: 模拟 以K个为一组,进行常规反转,重点是要保留反转前的头节点,以及第K+1个节点,将其反转之后连接起来 代码: /*** Definition for sin ...

  2. 【每日算法/刷穿 LeetCode】25. K 个一组翻转链表(困难)

    题目描述 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 示例: ...

  3. leetcode C++ 25. K 个一组翻转链表 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。

    一.思路: 先实现两个节点翻转,再实现k个节点翻转,最后实现一组一组翻转 二.C++代码: class Solution { public:ListNode* swap(ListNode *f1, L ...

  4. 力扣题目——25. K 个一组翻转链表

    注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个 ...

  5. 力扣 25. K 个一组翻转链表

    题目 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 进阶: 你 ...

  6. leetcode 25. Reverse Nodes in k-Group | 25. K 个一组翻转链表(Java)

    题目 https://leetcode.com/problems/reverse-nodes-in-k-group/ 题解 乍一看以为很容易:每 k 个节点翻转,若剩余不足 k 个,则不变.没有什么技 ...

  7. LeetCode 25. K 个一组翻转链表

    https://leetcode-cn.com/problems/reverse-nodes-in-k-group/ 难度:困难   给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. ...

  8. 每隔k次反转一次 链表_leetcode 25 K个一组翻转链表(c++)

    ### 题目 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 说 ...

  9. Leetcode 25.K个一组翻转链表

    难度:困难 频率:185 **题目:**给你一个链表,每K个节点一组进行翻转,清你返回翻转后的链表. K是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是K的整数倍,那么请将最后胜于的节点保 ...

最新文章

  1. mui 微信支付 与springMVC服务器交互
  2. dw可以编辑java吗_为什么很多人说 Java 不适合编写桌面应用?
  3. nginx+mysql+php
  4. 由《我也能做CTO》引起的作者与读者的交流
  5. 深入了解SpringCloud Hystrix
  6. 从国际站 - M 站建设谈开发者产品思维
  7. React之函数式组件
  8. 修改默认python版本
  9. 十字星文化获数千万元A轮融资,腾讯持续下注
  10. uboot第一阶段详细分析
  11. 自动驾驶 4-1 二维运动学建模Kinematic Modeling in 2D
  12. 5 windows PE COFF
  13. 1521 一维战舰 水题
  14. Activiti会签
  15. 计算机学院杨洋,杨洋-地球科学与技术学院
  16. MySQL深翻页、MySQL跳页
  17. 超全园林 景观cc0高清摄影图片素材网站整理
  18. 基于C4D的3d设计
  19. 看过这100个知识点,模电其实也不难
  20. node JS獲取GPS_node学习笔记(三十八)

热门文章

  1. CSS3及JS媒体查询教程
  2. NOIP 2012 Day2
  3. MariaDB配置、集群
  4. Ueditor的配置及使用
  5. cocos2d-x3.0 相对布局(一)
  6. ROBOTS.TXT屏蔽笔记、代码、示例大全
  7. sql server charindex函数和patindex函数详解(转)
  8. python在线问卷调查系统源代码_基于Python 练习1情况的在线问卷
  9. 访问权限冲突定义_一文读懂F5 REST API的细粒度角色访问控制
  10. java 中的流_Java中的流(IO