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

leetcode61. Rotate List

Given the head of a linked list, rotate the list to the right by k places.
给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。
Input: head = [1,2,3,4,5], k = 2
Output: [4,5,1,2,3]
class Solution:
def rotateRight(self, head, k):
if not head or not head.next: return head
# 求链表长度
_len = 0
cur = head
while cur:
_len += 1
cur = cur.next
# 对长度取模
k %= _len
if k == 0: return head
# 让 fast 先向后走 k 步
fast, slow = head, head
while k:
fast = fast.next
k -= 1
# 此时 slow 和 fast 之间的距离是 k;fast 指向第 k+1 个节点
# 当 fast.next 为空时,fast 指向链表最后一个节点,slow 指向倒数第 k + 1 个节点
while fast.next:
fast = fast.next
slow = slow.next
# newHead 是倒数第 k 个节点,即新链表的头
newHead = slow.next
# 让倒数第 k + 1 个节点 和 倒数第 k 个节点断开
slow.next = None
# 让最后一个节点指向原始链表的头
fast.next = head
return newHead


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

相关文章:

  • 车载空气净化器语音芯片方案
  • libcurl.net入门使用
  • 鸿蒙进阶篇-属性动画-animateTo转场动画
  • 【Qt-ROS开发】使用 Qt Creator 构建和编译含 ROS 库的 Qt 项目
  • 哪款开放式耳机好用?5款实力出众的开放式耳机按头安利!
  • ffmpeg内存模型
  • 哔哩哔哩TV1.6.6 | 基于1.6.6优化,简洁好用,支持弹幕
  • 手机屏幕上进行OCR识别方案
  • uniapp—android原生插件开发(4uniapp引用aar插件)
  • 219页华为供应链管理:市场预测SOP计划、销售预测与存货管理精要
  • tensorflow案例5--基于改进VGG16模型的马铃薯识别,准确率提升0.6%,计算量降低78.07%
  • C++ 面试问题集合
  • 2024年11月杂记
  • OceanBase 4.3.3 功能解析:列存副本
  • Docker实践与应用举例:从入门到进阶
  • 黑马Java API应用文档下载,中文版!!!!!
  • C02S11-Linux系统的安全与控制
  • Cesium基础-(Entity)-(model )
  • 如何详细查询全球药品研发的进度信息?
  • 【大数据测试 Elasticsearch — 详细教程及实例】
  • 系统启动时将自动加载环境变量,并后台启动 MinIO、Nacos 和 Redis 服务
  • 第七部分:2. STM32之ADC实验--AD多通道(AD采集三路传感器模块实验:光敏传感器、热敏传感器、反射式传感器附赠温湿度传感器教程)
  • 【Pikachu】越权访问实战
  • Oracle数据库 查看SQL执行计划的几种方法
  • vue2 通过路由拦截实现 token 刷新功能
  • 手持测温热像仪市场规模:预计2030年全球市场规模将达到24.9亿美元