旋转链表(C++解法)
题目
给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。
示例 1:

输入:head = [1,2,3,4,5], k = 2 输出:[4,5,1,2,3]
示例 2:

输入:head = [0,1,2], k = 4 输出:[2,0,1]
C++代码
#include <iostream>
using namespace std;//创建链表结构体
struct ListNode {int val;ListNode* next;ListNode() :val(0), next(nullptr) {}ListNode(int x) :val(x), next(nullptr) {}ListNode(int x, ListNode* next) :val(x), next(next) {}
};/*
* 旋转链表问题
* 先算出链表的长度,将最后一个节点指向头节点形成环状链表
* 计算旋转后链表需要断开的位置,断开链表,返回新链表
*/
ListNode* rotateRight(ListNode* head, int k) {if (k == 0 || head == nullptr || head->next == nullptr) {return head;}int n = 1;ListNode* iter = head;while (iter->next != nullptr) {n++;iter = iter->next;}iter->next = head;int add = n - k % n;if (add == n) {return head;}while (add) {iter = iter->next;add--;}ListNode* ans = iter->next;iter->next = nullptr;return ans;
}int main() {ListNode* n1 = new ListNode(1);ListNode* n2 = new ListNode(2);ListNode* n3 = new ListNode(3);ListNode* n4 = new ListNode(4);ListNode* n5 = new ListNode(5);n1->next = n2;n2->next = n3;n3->next = n4;n4->next = n5;n5->next = nullptr;ListNode* head = n1;int k = 2;ListNode* ans = rotateRight(head, k);while (ans) {cout << ans->val << " ";ans = ans->next;}delete n1, n2, n3, n4, n5;return 0;
}
分析
旋转链表问题,先算出链表的长度,将最后一个节点指向头节点形成环状链表,计算旋转后链表需要断开的位置,断开链表,返回新链表。
相关文章:
旋转链表(C++解法)
题目 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 示例 1: 输入:head [1,2,3,4,5], k 2 输出:[4,5,1,2,3]示例 2: 输入:head [0,1,2], k 4 输出:[…...
AcWing 134:双端队列
【题目来源】https://www.acwing.com/problem/content/description/136/【题目描述】 达达现在碰到了一个棘手的问题,有 N 个整数需要排序。 达达手头能用的工具就是若干个双端队列。 她从 1 到 N 需要依次处理这 N 个数,对于每个数,达达能做…...
Spring Cloud Gateway 重写 URL
目录 1、简介 2、Spring Cloud Gateway 快速回顾 3、基于配置的 URL 重写 4、基于 DSL 的 URL 重写 5、测试 6、总结 1、简介 Spring Cloud Gateway 的常见用例是作为一个网关,代理一个或多个服务,从而为客户端提供更简单的消费方式。 本文将带你…...
【C语法学习】10 - scanf()函数
文章目录 0 前言1 函数原型2 参数2.1 格式字符串2.1.1 转换说明 2.2 参数列表 3 返回值4 读取机制4.1 基本概念4.2 转换说明4.3 读取过程4.4 读取示例4.5 多参数 6 示例6.1 示例16.2 示例26.3 示例36.4 示例4 0 前言 scanf()函数虽然使用起来较为灵活,但是其读取机…...
ffmpeg mp3截取命令,视频与mp3合成带音频视频命令
从00:00:03.500开始截取往后长度到结尾的mp3音频(这个更有用,测试好用) ffmpeg -i d:/c.mp3 -ss 00:00:03.500 d:/output.mp3 将两个音频合并成一个音频(测试好用) ffmpeg -i "concat:d:/c.mp3|d:/output.mp3&…...
文件夹还在,里面文件没了?问题这样解决
文件夹还在但文件无故消失怎么办?文件的消失对于我们来说可能是个令人沮丧且困惑的问题。有时候,我们可能会发现文件夹依然存在,但其中的文件却消失了。在这篇文章中,我们将探讨为什么电脑文件会无故消失的原因,并提供…...
使用 OpenCV 和 Tesseract OCR 进行车牌识别
您将了解自动车牌识别。我们将使用 Tesseract OCR 光学字符识别引擎(OCR 引擎)来自动识别车辆牌照中的文本。 Python-tesseract: Py-tesseract 是 Python 的光学字符识别 (OCR) 工具。也就是说,它将识别并“读取”图像中嵌入的文本。Python-tesseract 是 Google 的 Tessera…...
What exactly are the practices involved in DevOps?
目录 1. Continuous Integration (CI) 2. Continuous Deployment (CD) 3. Infrastructure as Code (IAC) 4. Configuration Management 5. Monitoring and Logging 6. Automated Testing 7. Collaboration and Communication 8. Microservices Architecture 9. Conta…...
Spring底层原理(五)
Spring底层原理(五) 本章内容 介绍Aware接口与InitializingBean接口、Bean的初始化与销毁、Scope Aware接口 作用:用于注入一些与容器相关的信息 类名作用BeanNameAware注入Bean的名称BeanFactoryAware注入BeanFactory容器ApplicationContextAware注入ApplicationContext容…...
算法的基本概念(数据结构与算法)
数据结构是指数据元素之间的关系和组织方式,在计算机科学中被广泛应用于存储和操作数据的方法和技术。 数据元素: 数据元素是构成数据的基本单位,可以是数字、字符、记录等。 数据项: 数据元素中的一个部分,表示一个属…...
高阶数据结构学习——LRU Cache
文章目录 1、了解LRU Cache(Least Recently Used缩写)2、代码实现 1、了解LRU Cache(Least Recently Used缩写) Cache是缓存,在磁盘和内存之间,内存和寄存器之间都存在,CPU和内存之间存在三级缓…...
代码冲突解决
远程仓库修改 本地代码修改 接下来我们push一下 如果使用IDE 冲突内容如下: 我们可以使用自带的工具进行修改 我们选择接受自己改动的即可 如果使用git工具怎么去处理呢 远程分支是这样 本地是这样的 add和commit之后,再pull,最后pus…...
c/c++程序的内存开辟时 的内存情况
我们写的代码都是要存放在内存空间中的,我们经常说堆区,静态区,还有栈区,相信很多人不是很明白,在今天这篇博客中让大家对它们有一个粗略的认识 1.栈区(static) 在执行函数时,函数内…...
【linux常用命令+vi编辑器_2023.11.3】
芯片开发 Linux/Unix(环境) EDA工具TCL(波形) SVN/GIT(版本控制) Makefile(脚本语言) Perl/Python(脚本语言) Vim/Gvim(编辑器) 命令…...
okhttp post请求 header post参数加密遇到的两个问题
如果你对于网络请求用了https后是否还有必要对参数加密有疑问可以看我上篇的文章:网络安全https 记得耐心看完,下面说问题: Caused by: java.lang.IllegalArgumentException: Unexpected char 0x0a 一开始以为是okhttp框架对特殊字符做了现在…...
什么是Webpack的loader和plugin?它们的作用是什么?
聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…...
ESXi for ARM 最新下载地址
由于VMware决定关闭 flings.vmware.com 网站,内容被迁移到不同的地方,网站跳转到 Code Samples and PowerCLI Example Scripts | VMware - VMware {code} ESXi for ARM的下载地址迁移到了 https://customerconnect.vmware.com/downloads/get-download?…...
2. 网络之网络编程
网络编程 文章目录 网络编程1. UDP1.1 DatagramSocket1.1.1 DatagramSocket 构造方法1.1.2 DatagramSocket 方法: 1.2 DatagramPacket1.2.1 DatagramPacket构造方法1.2.2 DaragramPacket方法1.2.3InetSocketAddress API 1.3 UDP回显服务器1.3.1 框架结构1.3.2 读取请…...
工作数字化的中国历程 | 从 OA 到 BPM 到数字流程自动化
业务流程是由“活动”(或称“工作任务”)构成的,在企业里的所有工作是不是都叫流程,或者属于流程的一部分,这个概念很绕,我觉得没有必要去做学究气的辨析。我曾经提出过一个从工作的两个特性(产…...
6-1 二叉排序树查找操作
description 本题要求实现二叉排序树的查找操作。 函数接口定义: BSTree SearchBST(BSTree T,ElemType e); 其中BSTree结构定义如下: typedef int ElemType; typedef struct BSTNode { ElemType data; struct BSTNode *lchild,*rchild; }BSTNode,*BS…...
2026年产品经理必看:中国十大含金量产品岗位证书深度解析与职业进阶指南
大家好,很高兴能在这里和大家聊聊产品人的职业发展。👋转眼间我们已经步入 2026年,回首过去几年,互联网和科技行业的风向变了又变。作为在这个圈子里摸爬滚打多年的老兵,我深知大家此刻的焦虑:岗位竞争越来…...
告别手动评分!用ImageJ的IHC Profiler插件,5分钟搞定免疫组化定量分析(附避坑指南)
告别手动评分!用ImageJ的IHC Profiler插件,5分钟搞定免疫组化定量分析(附避坑指南) 免疫组化(IHC)作为病理诊断和生物医学研究中的金标准技术,其结果的量化分析一直是困扰研究人员的难题。传统人…...
LabVIEW图形化编程实战:从数据流原理到高效测控系统开发
1. 项目概述与核心价值今天咱们来聊聊LabVIEW这门工具。很多刚接触自动测试、数据采集或者仪器控制的朋友,可能都听说过它的大名,但上手时总觉得它和传统的文本编程语言(比如C、Python)不太一样,有点无从下手。我最早接…...
避坑指南:STM32F4 HAL库驱动MPU6050,从GitHub标准库移植到DMA模式的完整记录
STM32F4 HAL库下MPU6050 DMA模式移植实战:从标准库到高效姿态采集 移植第三方传感器驱动是嵌入式开发中的高频操作。最近在平衡车项目中,需要将GitHub上一个基于标准库的MPU6050驱动移植到STM32CubeMX生成的HAL库环境,并升级为DMA传输模式。这…...
【软考高级架构】案例题考前突击——分布式一致性在互联网金融平台的应用
案例分析题:分布式一致性在互联网金融平台的应用 案例背景 某互联网金融平台为了满足高并发、高可用的业务需求,采用了基于微服务和分布式架构的系统设计。平台核心业务包括账户余额管理、交易流水记录、资金划转等关键模块。 为提升系统性能,架构师引入了如下关键设计:…...
高效精准的SacreBLEU实战指南:机器翻译评估的专业解决方案
高效精准的SacreBLEU实战指南:机器翻译评估的专业解决方案 【免费下载链接】sacrebleu Reference BLEU implementation that auto-downloads test sets and reports a version string to facilitate cross-lab comparisons 项目地址: https://gitcode.com/gh_mirr…...
别再用时间机器了!用macOS恢复模式重装系统,保姆级图文教程(含抹盘避坑指南)
别再用时间机器了!用macOS恢复模式重装系统,保姆级图文教程(含抹盘避坑指南) 当你发现Mac运行速度明显变慢,或者准备转手出售设备时,彻底重装系统往往是最有效的解决方案。许多用户对macOS恢复模式存在本能…...
【亲测免费】 探索INA282:电流检测与测量的利器
探索INA282:电流检测与测量的利器 【下载地址】INA282电路图与使用说明 INA282电路图与使用说明本仓库提供了一个关于INA282的详细资源文件,包括电路图和使用说明 项目地址: https://gitcode.com/open-source-toolkit/9e96c 项目介绍 INA282是一…...
RISC-V开发板深度测评指南:从硬件解析到生态实战
1. 项目概述:一次深度参与RISC-V生态的实战机会最近,电子发烧友社区联合多家厂商发起的第二届RISC-V开发板测评大赛,吸引了圈内不少工程师和爱好者的目光。其中,昊芯(Haawking)作为一家专注于RISC-V处理器I…...
怎样给照片去背景?2026 图片抠图方法对比|免费在线工具实测
在日常生活中,我们经常需要给照片去背景——无论是制作证件照、电商商品图、社交媒体头像,还是创意合成,去背景都是最基础的图像处理需求。但面对五花八门的工具和方法,很多人不知道如何选择。本文将从多个维度全面对比 2026 年主…...
