【LeetCode】旋转链表

news2024/9/23 21:32:18

目录

  • 一、题目
  • 二、解法
  • 完整代码


一、题目

给你一个链表的头节点 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]

提示:

链表中节点的数目在范围 [0, 500] 内
-100 <= Node.val <= 100
0 <= k <= 2 * 109


二、解法

先取余,化简一下k,然后找到倒数第k+1个节点,然后做断开重新连接的动作


完整代码

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def rotateRight(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:
        if not head:
            return head
        dummy = cur = ListNode()
        dummy.next = head
        tot = 0
        while cur.next:
            cur = cur.next
            tot += 1
        last = cur
        cur = dummy
        k %= tot
        tmp = cur
        for _ in range(k + 1):
            tmp = tmp.next
        kk = cur
        while tmp:
            kk = kk.next
            tmp = tmp.next
        newHead = kk.next
        if not newHead:
            return dummy.next
        last.next = head
        kk.next = None
        return newHead

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL事务管理(上)

目录 前言 CURD不加控制&#xff0c;会有什么问题&#xff1f; CURD满足什么属性&#xff0c;能解决上述问题&#xff1f; 事务 什么是事务&#xff1f; 为什么会出现事务 事务的版本支持 事务提交方式 查看事务提交方式 改变 MySQL 的自动提交模式: 事务常见操作方式 前…

源码安装 AMD GPGPU 生态 ROCm 备忘

0, 前言 如果初步接触 AMD这套&#xff0c;可以先在ubuntu上使用apt工具安装&#xff0c;并针对特定感兴趣的模块从源码编译安装替换&#xff0c;并开展研究。对整体感兴趣时可以考虑从源码编译安装整个ROCm生态。 1, 预制二进制通过apt 安装 待补。。。 2, 从源码安装 sudo …

北京交通大学《深度学习》专业课,实验4循环神经网络实验

一、实验要求 1. 手动实现循环神经网络RNN&#xff0c;并在至少一种数据集上进行实验&#xff0c;从训练时间、预测精度、Loss变化等角度分析实验结果&#xff08;最好使用图表展示&#xff09; 2. 使用torch.nn.rnn实现循环神经网络&#xff0c;并在至少一种数据集上进行实验…

STM32学习(2)-GPIO输出

GPIO输出 2.1 GPIO输出1.GPIO简介2.GPIO基本结构3.GPIO位结构4.GPIO模式5.硬件电路 2.2LED闪烁&LED流水灯&蜂鸣器1.LED闪烁main函数代码 2.LED流水灯3.蜂鸣器 2.1 GPIO输出 1.GPIO简介 GPIO&#xff08;General Purpose Input Output&#xff09;通用输入输出口 可配…

【LeetCode】翻转二叉树

目录 一、题目二、解法完整代码 一、题目 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1] 示例 2&#xff1a; 输入&#xff1a;root…

人话讲下如何用github actions编译flutter应用-以编译windows为例

actions的脚本看下这个&#xff0c;有简单的说明&#xff0c;有关于编译个平台的脚本&#xff1a; https://github.com/marketplace/actions/flutter-action 打开你要编译的项目点击那个Actions按钮 然后随便点击一个脚本会跳到白框编辑界面 打开上文提到的网址随便抄下就ok …

Web开发:图片九宫格与非九宫格动态切换效果(HTML、CSS、JavaScript)

目录 一、业务需求 二、实现思路 三、实现过程 1、基础页面 2、图片大小调整 3、图片位置调整 4、鼠标控制切换 5、添加过渡 四、完整代码 一、业务需求 默认显示基础图片&#xff1b; 当鼠标移入&#xff0c;使用九宫格效果展示图片&#xff1b; 当鼠标离开&#…

基于术语词典干预的机器翻译挑战赛笔记 Task3 #Datawhale AI 夏令营

书接上回&#xff0c;上回在这捏&#xff1a; 基于术语词典干预的机器翻译挑战赛笔记Task2 #Datawhale AI 夏令营-CSDN博客文章浏览阅读223次&#xff0c;点赞10次&#xff0c;收藏5次。基于术语词典干预的机器翻译挑战赛笔记Task2https://blog.csdn.net/qq_23311271/article/…

华为智慧交通-高速公路视频云联网解决方案

华为高速公路视频云联网解决方案摘要&#xff1a; 智慧高速愿景智慧高速旨在实现人、车、路互信协同&#xff0c;提供更安全、高效、便捷的出行体验。通过全路段感知、全过程管控、全天候通行&#xff0c;以及智慧路段、服务区的建设&#xff0c;实现数字化、知识型、安全型、高…

微服务实战系列之玩转Docker(四)

前言 幸福&#xff0c;就是继续追寻已经拥有的东西。 ——圣奥古斯丁 什么算已经拥有的&#xff1f;比如爱你的人在等你&#xff0c;比如每日热腾腾的三餐&#xff0c;比如身边可爱的同事&#xff0c;又比如此刻的你&#xff0c;看见了这篇博文&#xff08;&#x1f601;&#…

搞一个boostrap主题,用django的mtv去对接

nginx的配置,设定这个模板映射的路径 location /assets/{alias /home/luichun/lc/Pyfile/Pyhome/app/statichome_to_nginx/pifu/dist/assets/;}1&#xff1a;设定一个主页的路由【django主要用来设定逻辑】 2&#xff1a;设定主页的响应内容【使用boostrap框架来对前端展示进行…

SVN与Git功能差异对比分析

最近在调研学习Git管理和分支模型相关内容&#xff0c;外延到了SVN和Git差异、工作原理等相关细节&#xff0c;学习整理如下。 SVN&#xff08;Subversion&#xff09;与 Git 的最大不同&#xff0c;主要包括以下几个方面&#xff1a; 交流探讨&#xff0c;加入群聊【Java学习…

微信小程序canvas 使用案例(一)

一、cavans 对象获取、上线文创建 1.wxml <!-- canvas.wxml --><canvas type"2d" id"myCanvas"></canvas> 2.js /*** 生命周期函数--监听页面加载*/onLoad(options) {const query wx.createSelectorQuery()query.select(#myCanvas).f…

Github报错:Kex_exchange_identification: Connection closed by remote host

文章目录 1. 背景介绍2. 排查和解决方案 1. 背景介绍 Github提交或者拉取代码时&#xff0c;报错如下&#xff1a; Kex_exchange_identification: Connection closed by remote host fatal: Could not read from remote repository.Please make sure you have the correct ac…

STM32智能安防监控系统教程

目录 引言环境准备智能安防监控系统基础代码实现&#xff1a;实现智能安防监控系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;安防监控与优化问题解决方案与优化收尾与总结 1. 引言 智能安防监控系统通…

【HarmonyOS开发】Navigation使用

简介 Navigation是路由容器组件&#xff0c;包括单栏(Stack)、分栏(Split)和自适应(Auto)三种显示模式。适用于模块内和跨模块的路由切换。 在页面跳转时&#xff0c;应该使用页面路由router&#xff0c;在页面内的页面跳转时&#xff0c;建议使用Navigation达到更好的转场动效…

VSCODE 下 openocd Jlink 的配置笔记

title: VSCODE 下 openocd Jlink 的配置笔记 tags: STM32HalCubemax 文章目录 内容VSCODE 下 openocd Jlink 的配置笔记安装完成后修改jlink的配置文件然后修改你的下载器为jlink烧录你的项目绝对会出现下面的问题那么打开下载的第一个软件 &#xff08;点到这个jlink右键&…

《小程序02:云开发之增删改查》

一、前置操作 // 一定要用这个符号包含里面的${}才会生效 wx.showToast({title: 获取数据成功&#xff1a;${colorLista}, })1.1&#xff1a;初始化介绍 **1、获取数据库引用&#xff1a;**在开始使用数据库 API 进行增删改查操作之前&#xff0c;需要先获取数据库的引用 cons…

手机如何播放电脑的声音?

准备工具&#xff1a; 有线耳机&#xff0c;手机&#xff0c;电脑&#xff0c;远控软件 1.有线耳机插电脑上 2.电脑安装pc版远控软件&#xff0c;手机安装手机端控制版远控软件 3.手机控制电脑开启声音控制 用手机控制电脑后&#xff0c;打开声音控制&#xff0c;电脑播放视频…

【Android】Android模拟器抓包配置

从Android7.0之后开始&#xff0c;用户自行安装的证书在用户目录下&#xff0c;无法进行证书信任&#xff0c;导致Charles无法进行https抓包 方案&#xff1a; 1. 获取手机root权限 有些模拟器可以直接开启root权限&#xff1b; 有些Android手机可以直接开启root权限。 2. …