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

K 个一组翻转链表 力扣

【玩转校招算法面试】第三天:链表中的节点每k个一组翻转(动画演示、手写 Java 代码、详细注释、LeetCode 高频算法题)_哔哩哔哩_bilibili

  1. 初始状态:1 -> 2 -> 3,pre = null, cur = 1
  2. 保存当前节点的下一个节点:next = 2
  3. 将当前节点指向前一个节点:1 -> null
  4. 更新前一个节点和当前节点:pre = 1, cur = 2
  5. 保存当前节点的下一个节点:next = 3
  6. 将当前节点指向前一个节点:2 -> 1 -> null
  7. 更新前一个节点和当前节点:pre = 2, cur = 3
  8. 保存当前节点的下一个节点:next = null
  9. 将当前节点指向前一个节点:3 -> 2 -> 1 -> null

for (int i = 0; i < k; i++) {1 2 3

                ListNode nxt  2 = cur.next; 

                cur.next = pre;根据后面2就会指向1

                pre = cur; 1

                cur = nxt;2

            }

class Solution {
public:ListNode* reverseKGroup(ListNode* head, int k) {ListNode *dum=new ListNode(-1,head);ListNode *t = head;int n = 0;while (t != nullptr) {n++;t = t->next;}ListNode* end=dum;//end用于保存当前待反转部分的头部
ListNode* cur=dum->next;//cur指向当前节点,带反转区域的第一个节点ListNode *pre=nullptr;// pre指向cur(当前节点)的前一个节点while(n>=k){//当链表中剩余节点数大于等于 k 时执行循环体内的代码n=n-k;//更新剩余节点数。ListNode *p1=cur;//记录当前位置for(int i=0;i<k;i++){// 反转k个节点ListNode *nxt=cur->next;cur->next=pre;pre=cur;cur=nxt;}
//pre会变成反转后最后一个节点,将上一组反转后的最后一个节点指向当前组反转后的最后一个节点end->next=pre;pre=nullptr;//重新下一次end=p1;此时p1所表示的cur已经反转到了后面,p0在下一个开始的前面}end->next = cur;//上一组反转后的尾部(即 end指向的节点)与当前组的头部(即 cur 指向的节点)连接起来,保持整个链表的连续性。return dum->next;}};

相关文章:

K 个一组翻转链表 力扣

【玩转校招算法面试】第三天&#xff1a;链表中的节点每k个一组翻转&#xff08;动画演示、手写 Java 代码、详细注释、LeetCode 高频算法题&#xff09;_哔哩哔哩_bilibili 初始状态&#xff1a;1 -> 2 -> 3&#xff0c;pre null, cur 1保存当前节点的下一个节点&…...

Java毕业设计 基于SSM SpringBoot vue购物比价网站

Java毕业设计 基于SSM SpringBoot vue购物比价网站 SSM vue 购物比价网站 功能介绍 首页 图片轮播 商品 商品分类 商品详情 评论 收藏 商品攻略 商品信息 公告栏 在线反馈 登录 注册 个人中心 我的收藏 后台管理 登录 注册商品户 个人中心 修改密码 个人信息 商品户管理 用户…...

Linux按键输入实验-按键功能完善

一. 简介 前面一篇文章实现了 按键的字符设备驱动代码框架&#xff0c;文章地址如下&#xff1a; Linux按键输入实验-按键的字符设备驱动代码框架-CSDN博客 本文在 字符设备驱动框架实现的基础上&#xff0c;加入按键GPIO的初始化功能。 二. Linux按键输入实验-按键的GPIO…...

二分查找讲解

关于我为什么要写单独开一篇文章写二分,实际上那么多困难的算法,比如线段树,并查集等等都没有难倒我,我最近却被二分难倒了,而且是两次,两次在赛场上做不出来二分的应用题,于是我决定写一篇二分查找的算法总结.刚接触算法的时候本来是要写一篇的,但后面因为各种原因搁置了,现在…...

跨区域复制建筑UI输入框脚本迷你世界

--复制区域文件 --设置坐标起点&#xff0c;终点 --创建区域 --获取坐标id,data --星空露珠工作室制作 local pos1{x-16,y7,z28} local pos2{x28,y44,z-9} local block{num0} local str{} local str0{} local num0 local count0 local ui6 --几个输入框 local romath.random(…...

取消退出流程控制方法

在自动化设备动作流程中&#xff0c;人为任意想取消当前动作&#xff0c;常见方法是使用全局变量&#xff0c;实时检测变量决定退出。这里介绍一个System.Threading空间下的 CancellationTokenSource类&#xff0c;他可以设置超时&#xff0c;设置信息等封装 基本使用超时和手…...

力扣-跳跃游戏

问题 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 解答 class Solu…...

李沐动手学习深度学习——3.2练习

以下是个人理解&#xff0c;希望进行讨论求解。 练习 1. 如果我们将权重初始化为零&#xff0c;会发生什么。算法仍然有效吗&#xff1f; 根据SGD算法公式如上&#xff0c;第一次迭代的值可知w只与b相关&#xff0c;而对于b的迭代更新&#xff0c;只是与b的初始值相关&#x…...

代码随想录Day20 | Leetcode77 组合

题目 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1a; [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ]示例 2&#xff1a; 输入&#xff1a;n 1, k 1 …...

Android Duplicate class 排除重复类

一、起因&#xff1a; 在迭代开发的时候&#xff0c;发现2个ijk很多类重复。但又2个库实现的功能是不一样&#xff0c;目前不能合并。但又想保留2个功能。需要排除其中一个库。 二、报错如何下图&#xff1a; 三、解决方法&#xff1a; 3.1 在terminal 也就是命令行处输入 …...

【Kubernetes】服务(Service)是什么?有什么用?有哪些类型?

系列文章目录 K8s中的Namespace是什么&#xff1f; Kubernetes 集群的组件介绍 Kubernetes 对象是什么&#xff1f; Pod——k8s中最重要的对象之一 Kubernetes 和 Docker 之间有什么区别&#xff1f; 部署安装 K8s 为什么要关闭 swap 分区&#xff1f; k8s中容器之间、pod之间…...

【前端素材】推荐优质后台管理系统DAdmin平台模板(附源码)

一、需求分析 1、系统定义 后台管理系统是一种用于管理网站、应用程序或系统的管理界面&#xff0c;通常由管理员和工作人员使用。它提供了访问和控制网站或应用程序后台功能的工具和界面&#xff0c;使其能够管理用户、内容、数据和其他各种功能。 2、功能需求 后台管理系…...

Redis高级特性详解:事务处理、发布订阅、持久化和集群

Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的基于内存的数据结构存储系统&#xff0c;被广泛应用于缓存、队列、计数器等场景中。除了基本的键值存储功能外&#xff0c;Redis还提供了许多高级特性&#xff0c;包括事务处理、发布订阅、持久化和集群。在…...

nwjs做自动化测试

分别是2个常用的自动化测试化框架 GitHub - nwutils/nw-selenium-javascript-example: An example of end-to-end testing with Selenium for NW.js apps via JavaScript GitHub - nwutils/nw-puppeteer-example: An example of using NW.js via Puppeteer. 看习惯使用哪个&…...

【前端素材】推荐优质在线特殊品牌商城电商网页eStore平台模板(附源码)

一、需求分析 1、系统定义 在线特殊品牌商城是指一个通过互联网提供特定品牌或特殊类型商品购买服务的电子商务平台。这类商城专注于某个特定品牌、设计风格或商品类型&#xff0c;为顾客提供独特、专业的购物体验。 2、功能需求 在线特殊品牌商城是指一个通过互联网提供特…...

Redis之一: 简介及环境安装搭建

什么是NoSQL? NoSQL&#xff0c;指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写&#xff0c;是对不同于传统的关系型数据库的数据库管理系统的统称。 NoSQL用于超大规模数据的存储。&#xff08;例如谷歌或Facebook每天为他们的用户收集万亿比特的数据&#xf…...

关于电脑一天24小时多少度电电脑的一天用电量计算

随着这几年物价的上涨&#xff0c;一些地区的电价越来越高&#xff0c;而我们经常需要使用电脑&#xff0c;那么一台电脑一天24小时用多少度电呢&#xff1f; 如何计算电脑一天的用电量&#xff1f; 让我们跟随小编来了解更多吧。 1、功耗、主机箱功耗 现在的计算机中&#xf…...

Unity3D 物理引擎的基本配置详解

前言 在Unity3D中&#xff0c;物理引擎主要由两部分组成&#xff1a;碰撞检测和物理模拟。在本文中&#xff0c;我们将详细介绍Unity3D物理引擎的基本配置&#xff0c;并给出相应的技术详解和代码实现。 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;希望大家可以…...

CSS:弹性盒子Flexible Box布局

CSS:Flexible Box弹性盒子布局 一、flex布局原理 ​ flex是flexible Box的缩写,意为 ”弹性布局“&#xff0c;用来为盒状模型提供最大的灵活性&#xff0c;任何一个容器都可以指定为flex布局。 当我们的父盒子设置为flex布局之后&#xff0c;子元素的 float 、clear 和 vert…...

java常用环境docker安装

配置目录 rocketmqredismysql不配置binlog配置binlog Nacoszookeeper 本文为精简安装&#xff0c;部分不带容器卷映射&#xff0c;仅供以学习使用。 rocketmq nameservice sudo docker run -d \ --privilegedtrue \ --name rmqnamesrv \ -p 9876:9876 \ -e "MAX_HEAP_SI…...

别再只把GAN当‘造假工具’了:从图像生成到数据增强,聊聊它在实际项目里的5种另类用法

GAN实战手册&#xff1a;超越图像生成的5个工业级应用场景 在咖啡厅里第一次听说GAN能生成以假乱真的人脸时&#xff0c;我像大多数开发者一样&#xff0c;把它归类为"酷炫但无用"的技术玩具。直到去年处理医疗影像数据集时&#xff0c;面对仅有200张标注样本的困境&…...

别再用delay了!基于状态机重构你的TM1651显示函数(C语言版)

别再用delay了&#xff01;基于状态机重构你的TM1651显示函数&#xff08;C语言版&#xff09; 在嵌入式开发中&#xff0c;数码管驱动是基础但容易被忽视的环节。传统实现往往依赖delay函数进行时序控制&#xff0c;这种方式简单直接&#xff0c;却严重浪费CPU资源&#xff0…...

告别虚拟机卡顿:在Windows上用WSL2搭建QNX开发环境(保姆级教程)

告别虚拟机卡顿&#xff1a;在Windows上用WSL2搭建QNX开发环境&#xff08;保姆级教程&#xff09; 嵌入式开发者在Windows平台上进行QNX开发时&#xff0c;传统虚拟机方案往往面临资源占用高、启动缓慢、系统响应迟钝等痛点。本文将带你探索一种更轻量高效的解决方案——基于…...

告别手动刷UDS!用CANoe.Diva Demo工程5分钟上手诊断自动化测试

告别手动刷UDS&#xff01;用CANoe.Diva Demo工程5分钟上手诊断自动化测试 还在为手动执行UDS诊断测试而烦恼&#xff1f;每次测试都要重复输入相同的指令&#xff0c;既耗时又容易出错。CANoe.Diva的自动化测试功能可以彻底改变这一现状&#xff0c;而它的Demo工程更是新手快…...

java对数据库的增删改查

查询步骤1.准备连接数据库需要的变量 &#xff08;库名称&#xff0c;库用户名&#xff0c;库密码&#xff09; 2.提前写好查询数据库的命令 3.声明一个存参数的list 4.连接数据库&#xff08;创建连接&#xff0c;准备指令&#xff0c;连接&#xff09; …...

华为MUX VLAN在企业多部门网络隔离中的实战部署

1. 为什么企业需要MUX VLAN技术 第一次接触MUX VLAN这个概念时&#xff0c;我也和很多网络工程师一样感到困惑&#xff1a;明明已经有普通VLAN和VLAN聚合技术了&#xff0c;为什么还要搞出个MUX VLAN&#xff1f;直到去年接手一个大型制造企业的网络改造项目&#xff0c;才真正…...

Facebook BM入门指南:从创建到高效管理的全面解析

1. Facebook BM到底是什么&#xff1f;为什么你需要它&#xff1f; 第一次听说Facebook Business Manager&#xff08;简称BM&#xff09;时&#xff0c;我也是一头雾水。直到接手公司海外推广业务后&#xff0c;才发现这个工具简直是多账号管理的神器。简单来说&#xff0c;BM…...

FPGA丨中值滤波算法:从理论到硬件实现的工程化解析

1. 中值滤波算法原理与硬件适配性分析 中值滤波本质上是一种基于排序统计的非线性信号处理技术&#xff0c;它的核心思想是把每个像素点的值替换为其邻域内所有像素值的中值。这种处理方式对椒盐噪声特别有效&#xff0c;因为噪声点通常表现为极值&#xff0c;而中值选取能自然…...

CAN总线通信不稳?可能是你的采样点没对齐!一个真实车载网络故障排查案例

CAN总线通信不稳&#xff1f;采样点错位引发的车载网络故障全解析 凌晨三点&#xff0c;产线测试工程师的电话突然响起——某新能源车型在EMC测试中频繁出现CAN通信错误帧&#xff0c;导致整车控制器间歇性失联。这个看似简单的通信故障&#xff0c;背后却隐藏着车载网络设计中…...

新手必看:用C++写一个简单计算器,搞定信息学奥赛OpenJudge NOI 1.4 19题

从零开始用C实现计算器&#xff1a;信息学奥赛OpenJudge NOI 1.4 19题精解 第一次接触信息学奥赛的编程题目时&#xff0c;很多人会被"简单计算器"这样的基础题难住——明明知道加减乘除的数学规则&#xff0c;却不知道如何用代码表达。这道题考察的正是将日常数学思…...