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

链表-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.xdnf.cn/news/19055.html

相关文章:

  • 深入解析 Flink Function
  • Vue将内容生成为二维码,并将所有二维码下载为图片,同时支持批量下载(下载为ZIP),含解决一次性生成过多时页面崩溃解决办法
  • TCP 并发服务器构建
  • 智芯MCU 勘误文档问题解析
  • 【Java知识】Java线程相关对象全面解析与最佳实践
  • 阿里云——应用交付与负载均衡
  • 数据对话的“通用语法”:SQL与KingbaseES的智能处理艺术
  • 从感知机到大模型:神经网络的全景解析与实践指南
  • ES01-环境安装
  • 盛大启幕!融智兴科技亮相 IOTE 2025 深圳国际物联网展
  • SegEarth-R1: Geospatial Pixel Reasoning via Large Language Model
  • 稀土:从“稀有”到“命脉”的科技核心
  • LeetCode算法日记 - Day 23: 外观数列、数青蛙
  • LeetCode - 155. 最小栈
  • 8.28 模拟
  • rust语言(1.88.0)sqlite数据库rusqlite库(0.37.0)学习笔记
  • 蘑兔音乐:帮你把灵感落地
  • 【新版发布】Apache DolphinScheduler 3.3.1 正式上线:更稳、更快、更安全!
  • 【Django + Pure Admin】基于Django+Vue3的前后端分离管理系统框架设计
  • 预处理详解
  • 【Spring Cloud 微服务】5.架构的智慧枢纽:深度剖析 Nacos 注册中心
  • 《Vuejs设计与实现》第 17 章(编译优化)
  • JMeter 5.3 性能测试:文件下载脚本编写与导出文件接收完整指南
  • 数据结构:堆排序 (Heap Sort)
  • spire.doc在word中生成公式
  • 设计模式理解
  • Shader开发(十七)着色器中的纹理采样与渲染
  • 农业物联网:科技赋能现代农业新篇章
  • 数模笔记day01(数据预处理、K-means聚类、遗传算法、概率密度分布)
  • UE5蓝图接口的创建和使用方法