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

【力扣专题栏】K个一组对链表进行翻转,如何实现分组翻转链表?

在这里插入图片描述

题解目录

  • 1、题目描述+解释
    • 2、算法原理解析
      • 3、代码编写

1、题目描述+解释

在这里插入图片描述

2、算法原理解析

在这里插入图片描述

3、代码编写

class Solution {
public:
    ListNode* reverseKGroup(ListNode* head, int k) {
        //1、计算链表节点数量
        ListNode* cur=head;
        int NodeNumber=0;
        while(cur)
        {
            NodeNumber++;
            cur=cur->next;
        }

        //2、计算有多少组
        int GroupNuber=NodeNumber/k;

        //3、每k个节点一组进行头插,先创建新链表的哨兵位
        ListNode* NewHead=new ListNode(0);
        ListNode* tmp=NewHead;//更新头插位置的指针
        ListNode* prev=NewHead;//进行头插的指针
        cur=head;//原表从头开始
        int i=0;
        for(i=0;i<GroupNuber;i++)
        {
            //每k个为一组
            int j=0;
            tmp=cur;
            for(j=0;j<k;j++)
            {
                //头插,临时指针记录原链表的下一个节点
                ListNode* next=cur->next;
                cur->next=prev->next;
                prev->next=cur;
                cur=next;
            }
            //内循环结束表示一组的节点头插完了,然后更新头插指针的位置
            prev=tmp;
        }
        //4、记得把没有翻转的节点链接到新链表
        prev->next=cur;

        //5、释放
        cur=NewHead->next;
        delete NewHead;
        return cur;
    }
};

http://www.kler.cn/a/379697.html

相关文章:

  • DFS求解迷宫最长移动路线
  • IsADirectoryError: [Errno 21] Is a directory: ‘xxxxx/.ipynb_checkpoints‘
  • 2024 Rust现代实用教程Generic泛型
  • WSL开发--利用Git连接远程仓库(详细步骤)
  • Qt Designer客户端安装和插件集(pyqt5和pyside2)
  • 【C++】对左值引用右值引用的深入理解(右值引用与移动语义)
  • 东方通TongWeb替换Tomcat的踩坑记录
  • VLAN间通信以及ospf配置
  • 2024年第六届全球校园人工智能算法精英大赛——【算法挑战赛】钢材表面缺陷检测与分割 比赛复盘
  • aws(学习笔记第十课) 对AWS的EBS如何备份(snapshot)以及使用snapshot恢复数据,AWS实例存储
  • 深度学习-如何计算神经网络的输出?
  • 重学SpringBoot3-整合 Elasticsearch 8.x (二)使用Repository
  • 为什么说模拟电路的难点就在开通过程和关断过程?难在什么地方?
  • 【数学二】线性代数-矩阵-初等变换、初等矩阵
  • 数据结构模拟题[十一]
  • 【使用 Python 和 ADB 检查 Android 设备的 Wi-Fi 状态】
  • python实现钉钉群机器人消息通知(消息卡片)
  • kafka消费端常见故障及处理方法
  • MySQL 高性能优化规范建议
  • 浅谈RPC的实现原理与RPC实战
  • HTTP、WebSocket、gRPC 或 WebRTC:各种协议的区别
  • 【LwIP源码学习5】网口接收数据处理过程
  • 【Python+Pycharm】2024-Python安装配置教程
  • STM32:IIC详解
  • opencv学习笔记(6):图像预处理(直方图、图像去噪)
  • Git 常用命令与开发流程总结