社区
彩虹世界的课程社区_NO_2
算法入门教程——链表
帖子详情
K个一组翻转链表(2)
帅气的东哥
2023-01-12 14:19:03
课时名称
课时知识点
K个一组翻转链表(2)
K个一组翻转链表
...全文
65
回复
打赏
收藏
K个一组翻转链表(2)
课时名称课时知识点K个一组翻转链表(2)K个一组翻转链表
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
K 个
一组
翻转
链表
2
迭代方法的基本思路是,每 k 个节点为
一组
进行
翻转
,如果剩余节点不足 k 个,则保持原有顺序不变。具体实现时,需要使用 3 个指针:pre、end 和 next,其中 pre 表示待
翻转
区域的前驱节点,end 表示待
翻转
区域的后继节点,next 则是遍历
链表
的指针。输入:head = [1,2,3,4,5], k = 3 输出:[3,2,1,4,5]示例:输入:head = [1,2,3,4,5], k = 2. 输出:[2,1,4,3,5]
Day2 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 说明: 你的算法只能使用常数的额外空间。 你不能只是单纯的
【
链表
2】leetcode25 K 个
一组
翻转
链表
经典必背的困难题目! 使用递归的方法做: (1)因为是k个
一组
进行
翻转
,首先找到每组
翻转
的结尾tail (2)找到结尾tail之后再进行普通的
链表
翻转
即可。注意
翻转
结束条件不再是head == nullptr,而是head == tail,这样一来每次的
翻转
范围是[head, tail) (3)
翻转
完毕后让head->next = 下一次递归的返回结果(此时head == tail) (4)最后返回cur 记录一下代码: /** * Definition for singly-linked lis.
【
链表
专题】(2. 两数相加 23. 合并 K 个升序
链表
25. K 个
一组
翻转
链表
)
在这段代码中,"把不需要逆序的连接上"的步骤没有使用循环的原因是因为在之前的步骤中已经完成了所有需要逆序的分组操作。具体来说,由于我们已经按照每k个节点为
一组
进行了逆序排列,当我们执行到最后
一组
的时候,这组后面的节点都是不需要再逆序的。在循环中,首先从堆中取出一个元素(即
链表
的一个节点),然后将prev的下一个节点设置为这个取出的元素。将不需要逆序的部分连接到已逆序的
链表
后面。所以,这里的设计是先通过循环处理所有需要特殊处理的节点,然后通过一次简单的赋值操作完成剩余节点的连接,从而避免了不必要的循环。
2023-2-3 K个
一组
翻转
链表
【
链表
】
双指针
彩虹世界的课程社区_NO_2
74
社区成员
183
社区内容
发帖
与我相关
我的任务
彩虹世界的课程社区_NO_2
复制链接
扫一扫
分享
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章