给定一个链表,旋转链表,将链表每个节点向右移动 个位置,其中 是非负数。

示例 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->2->NULL, k = 4
输出: 2->0->1->NULL
解释:
向右旋转 1 步: 2->0->1->NULL
向右旋转 2 步: 1->2->0->NULL
向右旋转 3 步: 0->1->2->NULL
向右旋转 4 步: 2->0->1->NULL

思路:

源代码:

class Solution {public ListNode rotateRight(ListNode head, int k) {//如果头结点没空或者k为0则直接返回头结点if(head == null || k == 0){return head;}ListNode cur = head;int count = 0;//先计算出节点个数while(cur != null){count++;cur = cur.next;}//如果k正好是节点的倍数,相当于不用旋转if(k % count == 0){return head;}//计算出最小的旋转次数k = k % count;cur = head;//找到被旋转部分的前一个节点for(int i=0; i<count-k-1; i++){cur = cur.next;}ListNode temp = cur.next;cur.next = null;cur = temp;//找到旋转部分的最后一个节点while(temp.next != null){temp = temp.next;}//直接将旋转部分的最后一个节点的next赋为头节点temp.next = head;return cur;}
}

【LeetCode】61.旋转链表相关推荐

  1. 【Leetcode -61.旋转链表 -82.删除排序链表中的重复元素Ⅱ】

    Leetcode Leetcode -61.旋转链表 Leetcode -82.删除排序链表中的重复元素Ⅱ Leetcode -61.旋转链表 题目:给你一个链表的头节点 head ,旋转链表,将链表 ...

  2. Java实现 LeetCode 61 旋转链表

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

  3. LeetCode 61. 旋转链表

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

  4. 跟我打卡LeetCode 61旋转链表62不同路径63不同路径 II

    原创公众号:bigsai 关注后回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode 49字母异位词分组&50pow(x,n)&51八皇后 LeetCode打卡 52八皇 ...

  5. 24. Leetcode 61. 旋转链表 (链表-基础操作类-旋转链表)

    给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置.示例 1:输入:head = [1,2,3,4,5], k = 2 输出:[4,5,1,2,3] 示例 2:输入:hea ...

  6. Leetcode 61 旋转链表 (每日一题 20210723)

    给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置.示例 1:输入:head = [1,2,3,4,5], k = 2 输出:[4,5,1,2,3] 示例 2:输入:hea ...

  7. LeetCode 61旋转链表-中等

    给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置. 输入:head = [1,2,3,4,5], k = 2 输出:[4,5,1,2,3] 输入:head = [0,1, ...

  8. LeetCode 61. 旋转链表(python、c++)

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

  9. leetcode 61 旋转链表 c++

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

  10. LeetCode 61——旋转链表

    1. 题目 2. 解答 2.1. 方法一 将链表每个节点向右移动 1 个位置,其实就是让链表最后一个结点指向第一个结点. 因此,向右移动 k 个位置就重复上述过程 k 次即可. 然后,我们注意到,若链 ...

最新文章

  1. 2012年技术图书大盘点
  2. OpenGL HDR曝光的实例
  3. (转)LCA模板(倍增法)
  4. python遍历二维数组需要注意的是_for循环获取二维数组的元素时的bug
  5. linux dhcp 服务(转)
  6. XGBoost的安装与介绍
  7. python中os模块_Python的武器库11:os模块
  8. SQL 必知必会·笔记20高级SQL特性
  9. PID控制器开发笔记(转)
  10. 【服务器】【个人图床】宝塔安装Chevereto
  11. 孙鑫VC学习笔记:第十二讲 (六) 读写注册表
  12. alreader 2 android,AlReader2
  13. 易语言禁用计算机指令大全,易语言电脑屏幕锁定工具源码
  14. postman接口测试如何发送json
  15. numpy简单快速安装教程
  16. 双三次插值c语言源代码,双三次插值原理及MATLAB源码实现
  17. 基于微信小程序的实验室管理系统 文档+云开发项目源码及云数据库+部署说明
  18. WIN10下TensorFlow GPU版安装顺序
  19. 测试jre 和jdk是否安装好
  20. libxml2的安装和使用

热门文章

  1. aws ec2 linux 密码,AWS EC2实例Ubuntu系统设置root用户密码并使用root/ubuntu用户登录
  2. python计算消费总额_Python在校园数据分析中的应用——以一卡通消费为例
  3. 2022-03-03 html网页布局练习(二):使用float浮动+html5新增标签进行网页布局
  4. MATLAB拟合中的fit用法
  5. ac97与intel HD audio
  6. PPT取消密码保护(软件)
  7. 数字化校园建设之实践二
  8. Vue实现自定义表格合并
  9. keep-alive有关的生命周期有那些?
  10. wps制作pdf模板,Adobe Acrobat DC利用pdf模板做填充数据表单域,在maven项目中利用java生成pdf