今天刷LeetCode第25题,题目是K 个一组翻转链表。就是官方随机给你一个数K,和一个长度大于或者等于K的链表,要求你每K个数翻转一次,最后再把整个链表连起来。
示例:
给你这个链表:1->2->3->4->5
当K=2时,应当返回:2->1->4->3->5
当K=3时,应当返回:3->2->1->4->5
通过这两个示例可以看出,当第一次翻转完之后,剩下链表的长度还大于K的话,那就继续以K为一组翻转。如果第一次翻转完成之后,剩余链表的长度不满足条件也就是小于K,那就原封不动,把剩下的链表拼接到第一次翻转的链表后面。
这里我用的是栈
将以K为一组长度的元素,加入栈,根据栈的先进后出原则,正好满足链表的翻转。
代码如下:
提交评论
您尚未登录 :-( ,登录之后方可评论 登录 or 注册