您现在的位置是:首页 > 文章详情

Leetcode打卡 | No.25 k 个一组翻转链表

日期:2018-09-19点击:447

No.25 k 个一组翻转链表

给出一个链表,每 个节点一组进行翻转,并返回翻转后的链表。

是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 的整数倍,那么将最后剩余节点保持原有顺序。

示例 :

给定这个链表:1->2->3->4->5

当 = 2 时,应当返回: 2->1->4->3->5

当 = 3 时,应当返回: 3->2->1->4->5

说明 :

 ●  你的算法只能使用常数的额外空间。
 ●  你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

特意留白一行 ,因为小詹做了两个多小时 ,还是没做出来 。。。。。。然后也就不想挣扎了 ,看了别人的代码 ,刷题这个东西 ,不能停啊 !不进则退 。

简单分析下思路 :

 ●  链表长度应该是大于给定值 k 的 ,可以分两种情况进行处理 。
 ●  一种是连续 k 个节点做翻转 ,之后将多个链表片段进行整合 。
 ●  另一种是链表结尾多出的几个节点 ,不够 k 个节点的那部分保留不做翻转 。

以下是讨论区的代码 ,验证可行 。说实话 ,小詹自己是没想到 ,小詹自己想到的是相邻两个翻转 ,依次往后 ,但是没能实现 。。下边代码建议自己假设一个案例复现 ,顺着思路走能看懂 ,但是自己写就是另一回事了 ……手生了哎

c8a6d07b0d874afafd17ac57fe8ebabde5b43273


原文发布时间为:2018-09-19

本文来自云栖社区合作伙伴“小詹学Python”,了解相关信息可以关注“小詹学Python”。

原文链接:https://yq.aliyun.com/articles/642550
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章