Leetcode 中等:61. 旋转链表

leetcode 61. 旋转链表 61. 旋转链表 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: 1->2->3->4->5->NULL, k = 2 输出: 4->5->1->2->3->NULL 解释: 向右旋转 1 步: 5->1->2->3->4->NULL 向右旋转 2 步: 4->5->1->2->3->NULL 示例 2: 输入: 0->1-&gt 阅读详情

题目:旋转链表

  • 题号:61
  • 难度:中等
  • https://leetcode-cn.com/problems/rotate-list/

给你一个链表的头节点 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∗1090 <= k <= 2 * 10^90<=k<=2∗109

实现

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     public int val;
 *     public ListNode next;
 *     public ListNode(int x) { val = x; }
 * }
 */
 
public class Solution
{
    public ListNode RotateRight(ListNode head, int k)
    {
        if (head == null || k == 0)
            return head;

        int len = GetLength(head);
        int index = len - k%len;

        if (index == len)
            return head;

        ListNode temp1 = head;
        ListNode temp2 = head;
        for (int i = 0; i < index - 1; i++)
        {
            temp1 = temp1.next;
        }
        head = temp1.next;
        temp1.next = null;

        temp1 = head;
        while (temp1.next != null)
        {
            temp1 = temp1.next;
        }
        temp1.next = temp2;
        return head;
    }

    public int GetLength(ListNode head)
    {
        ListNode temp = head;
        int i = 0;
        while (temp != null)
        {
            i++;
            temp = temp.next;
        }
        return i;
    }
} 

Python 语言

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution(object):
    def rotateRight(self, head, k):
        """
        :type head: ListNode
        :type k: int
        :rtype: ListNode
        """
        if head is None or k == 0:
            return head

        l = self.GetLength(head)
        index = l - k % l
        if index == l:
            return head

        temp1 = temp2 = head
        for i in range(index - 1):
            temp1 = temp1.next
        head = temp1.next
        temp1.next = None

        temp1 = head
        while temp1.next is not None:
            temp1 = temp1.next
        temp1.next = temp2
        return head

    def GetLength(self, head):
        temp = head
        i = 0
        while temp is not None:
            i += 1
            temp = temp.next
        return i
【中等】力扣算法题解析LeetCode61:旋转链表 本文介绍了如何旋转链表,将每个节点向右移动k个位置。关键思路包括:处理边界情况(空链表或k=0时直接返回),计算链表长度并成环,通过取模运算确定有效旋转步数,定位新尾节点后断开环并返回新头节点。代码实现清晰,时间复杂度为O(n)。适用于节点数在500以内、k值极大的场景。 阅读详情

相关推荐

银河麒麟v10(x86_64)升级openssh实操成功

本文详细介绍了在银河麒麟V10系统上将OpenSSH从8.2p1升级至9.9p2版本的全过程。主要内容包括:系统环境确认、安装telnet备用连接、备份配置、卸载旧版本、安装新版本、服务配置与验证等关键步骤。特别强调了安全注意事项,如必须安装telnet作为备用连接、重要配置备份等。升级后提供了安全加固建议,包括修改SSH端口、禁用root登录等。文章还包含详细的故障排查方法和恢复方案,确保升级过程安全可靠。通过本教程,用户可以顺利完成OpenSSH版本升级,提升系统安全性。

淘淘小窝 1088

LeetCode第61题:旋转链表(中等)

LeetCode第61题:旋转链表(中等) 题目:给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 解法一:因为声明了first和second两个节点进行移动(我不知道怎么变成一个节点移动),就把0个、1个、2个节点在最前面都特殊讨论了。 class Solution { public ListNode rotateRight(ListNode head...

new_whiter的博客 406

CentOS 8下openLDAP服务器搭建避坑指南:从第三方仓库到phpLDAPadmin配置

本文详细介绍了在CentOS 8环境下搭建openLDAP服务器的完整流程,包括利用Symas第三方仓库解决官方仓库不支持的问题,以及phpLDAPadmin的配置技巧。内容涵盖环境准备、核心配置、安全加固、性能优化等关键环节,帮助系统管理员避开常见陷阱,实现高效稳定的LDAP服务器部署。

weixin_30919429的博客 407

【LeetCode】第61题——旋转链表(难度:中等)

【LeetCode】第61题——旋转链表(难度:中等)题目描述解题思路代码详解注意点 题目描述 给你一个链表的头节点 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 &l

Se7en_Dayz的博客 398

华为OD机试 - 服务中心选址(Python)

一个快递公司希望在一条街道建立新的服务中心。公司统计了该街道中所有区域在地图上的位置,并希望能够以此为依据为新的服务中心选址:使服务中心到所有区域的距离的总和最小。先输入区域数组positions的长度n(1 ≤ n ≤ 10^5)接下来 n 行每行输入成对的left和right值,以空格隔开。输出为location。

m0_46181452的博客 282

【HEC】HECRAS中的降雨边界

网格降雨可能是城市地区建模的一个好选择。这是因为传统的一维(1D)建模并不能完全捕捉城市地区通常出现的复杂流动模式。使用网格降雨建模方法在构建包含多个未定义流动路径的模型时也非常有用。对于流量分支非常复杂的水道,设定边界条件可能会很困难。 HECRAS提供两种降雨边界添加的方法 - 在指定SA/2D FLOW AREA添加降雨边界 - 在hec-ras 6.0以上版本中 “气象数据” 的选项卡,可以添加具有空间变化的降水量、蒸散量和风。 两种方法只能选择一种,以下分别介绍

```On Earth, Be Water, By Coding``` 1398

LeetCode:61. 旋转链表(中等)

题目描述 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: 1->2->3->4->5->NULL, k = 2, 输出: 4->5->1->2->3->NULL 解释: 向右旋转 1 步: 5->1->2->3->4->NULL, 向右旋转 2 步: 4->5->1->2->3->NULL 示例 2: 输入: 0->1->

qq_42147969的博客 279

OpenHarmony + AI:深度解析 Whisper.cpp 智慧语音系统级移植与 NAPI 封装实战

【代码】OpenHarmony + AI:深度解析 Whisper.cpp 智慧语音系统级移植与 NAPI 封装实战。

m0_67505153的博客 187

leetcode题:61. 旋转链表(中等)

一、题目描述:61. 旋转链表(中等) 给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。 示例1: 输入: 1->2->3->4->5->NULL, k = 2 输出: 4->5->1->2->3->NULL 解释: 向右旋转 1 步: 5->1->2->3->4->...

tankpanv的博客 119

2025年广东省职业院校技能大赛高职组“区块链技术应用”正式赛题解析答案(标准答案参阅)

某公司规划开发一个区块链供应链金融平台,包括核心企业、供应商、银行等角色,通过智能合约代码逐步构建区块链供应链金融平台的基本功能,实现银行向核心企业提供授信并发行数字凭证,企业与企业之间转让数字凭证。此外需要完成区块链供应链金融平台的前后端,实现基本的业务逻辑

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 1270

Vue3 - Element Plus 全局修改更换主题色配置详细教程,element-plus自定义主题色全局替换主色调强力解决方案,支持动态修改主题颜色/动态皮肤,将默认蓝色主题色更换为其他颜色!

vue3,nuxt3,element-plus,组件库,主题色,修改主题颜色,更换主题色,如何修改组件默认主题蓝色,项目主题色定制,修改失败,主题色覆盖不了,:root直接修改,hover颜色没改,自定义主题色,vue3全局设置elementPlus主题色最新详细修改教程,怎么修改全局的颜色,scss变量,覆盖原来的主题色改为自己的颜色,统一替换,有没有好办法,颜色不变,失败,无效,动态主题切换,主题颜色怎么在项目里直接改,plus主题色更换,覆盖默认主题色,最强最好用,设置主题色,换肤,皮肤,动态更换

🏆 前端领域优质创作者 1万+

【LeetCode】C++ :中等题 - 链表 61. 旋转链表

61. 旋转链表 难度中等402 给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。 示例1: 输入: 1->2->3->4->5->NULL, k = 2 输出: 4->5->1->2->3->NULL 解释: 向右旋转 1 步: 5->1->2->3->4->NULL 向右旋转 2 步: 4->5->1->2->3->NULL 示例2:...

weixin_44566432的博客 228

【反封禁策略】集成 Undetected-Chromedriver:让 Browser-Use 绕过 Cloudflare 五秒盾

摘要:AI Agent如何突破Cloudflare检测的实战指南 本文针对AI Agent在Cloudflare检测下频繁受阻的问题,深入分析了undetected-chromedriver的工作原理与局限性。文章指出,Cloudflare 2026年的检测体系已升级为"浏览器指纹+IP信誉+协议指纹+行为模式"的多维交叉验证,单一伪装方案难以奏效。 核心内容包括: undetected-chromedriver的三层补丁体系解析 v2与v3版本的适用场景对比 两种Browser-Use集成方案:Selen

ZDQ58818的博客 284

力扣 61题. 旋转链表(难度:中等,c语言)

/将链表连起来变成循环的,一会再切割。//计算头结点最终位置。,旋转链表,将链表每个节点向右移动。给你一个链表的头节点。

yes_you_areright的博客 392

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【LeetCode】61. 旋转链表

61. 旋转链表解题摘要 问题描述:给定链表头节点和整数k,将链表向右旋转k个位置。 核心思路: 闭环取模法(最优解): 遍历链表获取长度n并记录尾节点 计算有效旋转次数k = k%n 将尾节点连接头节点形成环 定位新尾节点(走n-k-1步) 断开环并返回新头节点 关键优化: 通过取模减少无效旋转(k = k%n) 时间复杂度O(n),空间复杂度O(1) 示例: 输入[1,2,3,4,5], k=2 → 输出[4,5,1,2,3] 输入[0,1,2], k=4 → 输出[2,0,1] 复杂度分析: 闭环取模

qq_32019341的博客 1178

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

61. 旋转链表【 力扣(LeetCode) 】

给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。

yyh520025的博客 1485

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Leetcode61:旋转链表

Leetcode61:旋转链表 给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。 示例1: 输入: 1->2->3->4->5->NULL, k = 2 输出: 4->5->1->2->3->NULL 解释: 向右旋转 1 步: 5->1->2->3->4->NULL 向右旋转 2 步: 4->5->1->2->3->NULL 示例2: 输入:...

u011485472的博客 1517

LeetCode第61题_旋转链表

给你一个链表的头节点head,旋转链表,将链表每个节点向右移动k个位置。

qq_40263592的博客 1292

LeetCode61.旋转链表 Java实现

这道题目考察了对链表操作的理解和实现能力。通过模拟旋转的过程,我们可以有效地解决这个问题。在实际应用中,类似的链表操作可能会用于数据结构的转换、图像处理等领域。掌握这种操作对于解决更复杂的问题具有重要的基础意义。希望这份文档能够帮助你更好地理解和实现旋转链表的问题!如果有任何进一步的问题或需要更多的优化,请随时告知。

Lentr0py的博客 805

力扣第 61 题旋转链表

给定一个链表,旋转链表,将链表中的每个节点向右移动。

weixin_48941116的博客 1096

(力扣)61.旋转链表

61. 旋转链表题 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: 1->2->3->4->5->NULL, k = 2 输出: 4->5->1->2->3->NULL 解释: 向右旋转 1 步: 5->1->2->3->4->NULL...

Fighting for 24 4874

力扣解题-61. 旋转链表

逐次右移法(第一次解答):逻辑直观但超时,仅适合理解旋转基本逻辑,无工程价值;闭环定位法(第二次解答):O(n)时间+O(1)空间,利用取模简化k,是工程首选的最优迭代解法;双指针法(示例解法1):与闭环定位法逻辑等价,代码更简洁,双指针实现更贴合题型特征;递归法(示例解法2):思路优雅但有栈开销,仅作拓展参考;关键技巧:核心优化:旋转k次等价于旋转k%n次,是解决k极大问题的关键;定位逻辑:新头节点是原链表“倒数第k个节点”,新尾节点是“倒数第k+1个节点”;

qq_38261626的博客 575

Day11 [LeetCode中等] 61. 旋转链表

Day11: [LeetCode中等] 61. 旋转链表 题源: 来自leetcode题库: https://leetcode-cn.com/problems/rotate-list/ 思路: 链表基本操作,唯一需要注意的是当要移动的位置量k是链表长度的倍数的时候,要单独处理一下。 代码: dirty code凑合看吧 /** * Definition for singly-linked li...

qq2215459786的博客 207

LeetCode 61:旋转链表

目录LeetCode题目描述解题 LeetCode 题目描述 解题      /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* rotateRight(ListNod

s_Shune 173

leetcode61. 旋转链表

题目 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 (Given a linked list, rotate the list to the right by k places, where k is non-negative.) Example 1: Input: 1->2->3->4->5->NULL, k = 2 Output: 4->5->1->2->3->NULL Explanation: rotate

baiye 214

leetcode-61-旋转链表(java)

title: leetcode-61-旋转链表(java) date: 2019-09-15 15:25:33 categories: leetcode tags: leetcode 旋转链表 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: 1->2->3->4->5->NULL, k = 2 输出: ...

weixin_42479155的博客 341
上一篇: Leetcode 中等:59. 螺旋矩阵II
下一篇: 一星级挑战:08 数字加密
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青少年编程小助手_Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值