Leetcode刷题笔记题解(C++):25. K 个一组翻转链表

思路:利用栈的特性,K个节点压入栈中依次弹出组成新的链表,不够K个节点则保持不变

/*** struct ListNode {*	int val;*	struct ListNode *next;*	ListNode(int x) : val(x), next(nullptr) {}* };*/
#include <stack>
class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param head ListNode类 * @param k int整型 * @return ListNode类*/ListNode* reverseKGroup(ListNode* head, int k) {// write code herestack<ListNode*> sk;//用来保存链表节点ListNode* temp = head;ListNode* ret = new ListNode(-1);ListNode* ret1 = ret;//按k个节点一次一次去遍历链表while(1){int count = k;//K个节点之内依次push入栈中while(count&&temp){sk.push(temp);temp = temp->next;count--;}//如果push完了还不够数量则该次不需要反转链表反转保持原型进行链接,从而跳出循环if(count){//下一阶段的第一个节点ret1->next = head;//这句不能省略的原因是如果k大于链表的长度,没有这句话return结果为空,但是应该是该链表break;}//如果够数量则从栈中弹出加入结果链表中while(!sk.empty()){ret1->next = sk.top();sk.pop();ret1 = ret1->next;}//结果链表的下一节点指向后面的链表ret1->next = temp;head = temp;}   return ret->next;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/264093.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

using dapers on diffusers: Dreambooth, Texual Inversion, LoRA and IP-Adapter

using dapers on diffusers: Dreambooth, Texual Inversion, LoRA and IP-Adapter 参考自&#xff1a;https://huggingface.co/docs/diffusers/using-diffusers/loading_adapters 如今&#xff0c;对于 diffusion 模型&#xff0c;有许多高效的训练技术来微调一个定制化的模型&…

QGIS 加载在线XYZ地图图层

QGIS 加载在线XYZ地图图层 定义并添加必应XYZ图层 Go to Layer > Add Layer > Add XYZ Layer…Click NewName as BingMaps(as you wish)URL as http://ecn.t3.tiles.virtualearth.net/tiles/a{q}.jpeg?g1click OkSelect XYZ Connections as Bing Maps(Which you creat…

二叉树的OJ练习(二)

通过前序遍历数组构建二叉树 题目&#xff1a;通过前序遍历的数组&#xff08;ABD##E#H##CF##G##&#xff09;构建二叉树 TreeNode* TreeCreat(char* a,int* pi) {if(a[*pi] #){(*pi);return NULL; }TreeNode* root (TreeNode*)malloc(sizeof(TreeNode));if(root NULL){p…

基于SpringBoot 2+Layui实现的管理后台系统源码+数据库+安装使用说明

springboot-plus 一个基于SpringBoot 2 的管理后台系统,包含了用户管理&#xff0c;组织机构管理&#xff0c;角色管理&#xff0c;功能点管理&#xff0c;菜单管理&#xff0c;权限分配&#xff0c;数据权限分配&#xff0c;代码生成等功能 相比其他开源的后台系统&#xff0…

Shutter的安装及使用

概要&#xff1a;本篇主要讲述截图软件Shutter的安装和使用&#xff0c;操作系统是Ubuntu22.04 一、安装 sudo apt install shutter 二、区域截图 1、打开Shutter&#xff0c;点击Selection 2、提示信息 3、框选矩形区域 按住鼠标左键&#xff0c;拖动鼠标&#xff0c;松…

Mysql的所有数据类型和它们的区别

一、数值类型 1. 普通整数数值类型 以下数据类型只能用以保存整数 整数数值类型类型存储大小&#xff08;字节&#xff09;有符号的取值范围&#xff08;允许存在负数&#xff09;无符号的取值范围TINYINT1-128 ~ 1270 ~ 255SMALLINT2- 327678 ~ 327670 ~ 65535MEDIUMINT3- 8…

FL Studio 21注册机激活码序列号下载 附激活码

FL Studio 21 keygen激活码序列号是一款基于同名软件激活程序。操作非常简单。用户只需使用本激活工具生成激活码&#xff0c;即可一键激活软件所有功能&#xff0c;无需付费。去购买注册程序&#xff0c;永久免费使用所有功能。很多用户应该都知道&#xff0c;专业的编辑工具只…

Python字典去重竟然比集合去重快速40多倍

这里写目录标题 对比代码结果图代码解析 对比代码 from glob import glob from tqdm import tqdm import time path_listglob("E:/sky_150b/任务组_20231207_2023/*.jsonl") # for two in tqdm(path_list): onepath_list[0]with open(one,"r",encoding&q…

常见web漏洞的流量分析

常见web漏洞的流量分析 文章目录 常见web漏洞的流量分析工具sql注入的流量分析XSS注入的流量分析文件上传漏洞流量分析文件包含漏洞流量分析文件读取漏洞流量分析ssrf流量分析shiro反序列化流量分析jwt流量分析暴力破解流量分析命令执行流量分析反弹shell 工具 攻击机受害机wi…

MyBatis 四大核心组件之 ResultSetHandler 源码解析

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

55.手写实现grpc连接池以及gin和grpc交互

文章目录 一、简介前置说明 二、敏感词过滤服务1、定义sensitive.proto文件2、protoc生成pb.go文件3、sensitive服务端实现 三、关键词匹配服务1、编写keywords.proto文件2、生成pb.go文件3、keywords服务端实现 四、gin web 路由服务1、新建grpcpool服务作为gin web服务2、根据…

论MYSQL注入的入门注解

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 &#x1f4d1;什么是MySQL注入&…