当前位置: 首页 > news >正文

链表-25.k个一组翻转链表-力扣(LeetCode)

一、题目解析

1、每k个一组进行翻转

2、不允许单纯交换节点内部的值

二、算法原理

解法:模拟

1、遍历链表得到总节点数n,n/=k,得到需要翻转的组数n

利用cur遍历链表,若cur不为空,则n++,cur=cur->next

2、重复n次,长度为k的链表逆序,使用头插法

我们tmp记录每组第一个插入的节点,为了便于下组头插

3、剩下的直接链接到后面,释放哨兵位头结点

三、代码示例

class Solution {
public:ListNode* reverseKGroup(ListNode* head, int k){//先求需要翻转的组数nint n  = 0;ListNode* cur = head;while(cur){n++;cur = cur->next;}n/=k;ListNode* newhead = new ListNode(0);cur = head;ListNode* tmp = nullptr,*prev = newhead,*next = nullptr;//重复n次长度为k的链表翻转while(n--){tmp = cur;for(int i = k;i>0;i--){if(cur)next = cur->next;if(cur)cur->next = prev->next;prev->next = cur;cur = next;}prev = tmp;}//链接剩下的节点prev->next = cur;cur = newhead->next;//释放哨兵位头结点delete newhead;return cur;}
};

看到最后,如果对您有所帮助,还请点赞、收藏和关注支持一波,我们下期再见!

http://www.dtcms.com/a/353054.html

相关文章:

  • 镜中万象:论观察即存在的递归拓扑与生命的意识本质
  • FPGA的工作原理
  • AI赋能CRM:纷享销客访销大脑重构快消品销售策略
  • d435i相机读取镜头内参和相对之间的外参
  • 三方相机问题分析八:【返帧异常导致性能卡顿】Snapchat后置使用特效预览出现卡顿
  • Jmeter5.3性能测试:文件下载脚本编写后,导出文件的接收
  • 第五章:Go运行时、内存管理与性能优化之栈与堆内存分配 (逃逸分析)
  • 在语言模型监督式微调(SFT)中的 负对数似然(Negative Log-Likelihood, NLL)等价于最大化似然
  • 开发者如何在 Gitee 上开源一个自己的项目
  • 开源 C++ QT Widget 开发(七)线程--多线程及通讯
  • keepalived mysql 主从复制 容器实现(失败)
  • JVM之【Java对象在内存中的结构】
  • windows下 docker desktop 清理ext4.vhdx文件 并缩小ext4.vhdx文件
  • 二次校验请求源 IP 是否在 WAF 官方 IP 段内” + “校验是否携带 WAF 专属 HTTP 头
  • 基于Spark的白酒行业数据分析与可视化系统的设计与实现
  • [后端快速搭建]基于 Django+DeepSeek API 快速搭建智能问答后端
  • 域名、ip、DSN、URL
  • springbootr如何调用dolphinshceduler
  • 【记录】R|Windows 下的 R studio 安装调研准备工作、安装过程以及 ggplot2 包的引入测试
  • GIP电路
  • leetcode 974 和可被K整除的子数组
  • 【LeetCode 热题 100】287. 寻找重复数——双指针
  • 初始Linux——指令与权限
  • 【大前端】封装一个React Native与Android/IOS 端通用的埋点接口
  • 数据结构(C语言篇):(三)顺序表算法题解析
  • FPGA学习笔记——Verilog中可综合和常见的不可综合的系统函数
  • 数据结构:从堆中删除元素 (Deleting from a Heap)
  • 使用Spring Boot和EasyExcel导出Excel文件,并在前端使用Axios进行请求
  • linux-优化命令
  • Linux笔记11——shell编程基础-5