区块链技术博客
www.b2bchain.cn

25. K 个一组翻转链表求职学习资料

本文介绍了25. K 个一组翻转链表求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。

k 是一个正整数,它的值小于或等于链表的长度。

如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。

示例:

给你这个链表:1->2->3->4->5  当 k = 2 时,应当返回: 2->1->4->3->5  当 k = 3 时,应当返回: 3->2->1->4->5

说明:

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

本质是一个单向链表翻转的问题,转化成如何翻转某部分链表。

链表特点:

struct ListNode {       int val;       ListNode *next; }

val为该节点的值,next为下一节点。

链表翻转

想要翻转链表,需要保存上下文,核心方法如下:

pre->next 永远指向头结点 current 是需要交换的节点 last 是上一个current

每 k 个节点一组进行翻转

我们只需要多一步切割 k 个节点的过程。

c++ 代码:

给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。

k 是一个正整数,它的值小于或等于链表的长度。

如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。

示例:

给你这个链表:1->2->3->4->5  当 k = 2 时,应当返回: 2->1->4->3->5  当 k = 3 时,应当返回: 3->2->1->4->5

说明:

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

本质是一个单向链表翻转的问题,转化成如何翻转某部分链表。

链表特点:

struct ListNode {       int val;       ListNode *next; }

val为该节点的值,next为下一节点。

链表翻转

想要翻转链表,需要保存上下文,核心方法如下:

pre->next 永远指向头结点 current 是需要交换的节点 last 是上一个current

每 k 个节点一组进行翻转

我们只需要多一步切割 k 个节点的过程。

c++ 代码:

给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。

k 是一个正整数,它的值小于或等于链表的长度。

如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。

示例:

给你这个链表:1->2->3->4->5  当 k = 2 时,应当返回: 2->1->4->3->5  当 k = 3 时,应当返回: 3->2->1->4->5

说明:

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

本质是一个单向链表翻转的问题,转化成如何翻转某部分链表。

链表特点:

struct ListNode {       int val;       ListNode *next; }

val为该节点的值,next为下一节点。

链表翻转

想要翻转链表,需要保存上下文,核心方法如下:

pre->next 永远指向头结点 current 是需要交换的节点 last 是上一个current

每 k 个节点一组进行翻转

我们只需要多一步切割 k 个节点的过程。

c++ 代码:

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 25. K 个一组翻转链表求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们