【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->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.旋转链表相关推荐
- 【Leetcode -61.旋转链表 -82.删除排序链表中的重复元素Ⅱ】
Leetcode Leetcode -61.旋转链表 Leetcode -82.删除排序链表中的重复元素Ⅱ Leetcode -61.旋转链表 题目:给你一个链表的头节点 head ,旋转链表,将链表 ...
- Java实现 LeetCode 61 旋转链表
61. 旋转链表 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: 1->2->3->4->5->NULL, k = ...
- LeetCode 61. 旋转链表
给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: 1->2->3->4->5->NULL, k = 2 输出: 4-& ...
- 跟我打卡LeetCode 61旋转链表62不同路径63不同路径 II
原创公众号:bigsai 关注后回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode 49字母异位词分组&50pow(x,n)&51八皇后 LeetCode打卡 52八皇 ...
- 24. Leetcode 61. 旋转链表 (链表-基础操作类-旋转链表)
给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置.示例 1:输入:head = [1,2,3,4,5], k = 2 输出:[4,5,1,2,3] 示例 2:输入:hea ...
- Leetcode 61 旋转链表 (每日一题 20210723)
给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置.示例 1:输入:head = [1,2,3,4,5], k = 2 输出:[4,5,1,2,3] 示例 2:输入:hea ...
- LeetCode 61旋转链表-中等
给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置. 输入:head = [1,2,3,4,5], k = 2 输出:[4,5,1,2,3] 输入:head = [0,1, ...
- LeetCode 61. 旋转链表(python、c++)
题目描述 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: 1->2->3->4->5->NULL, k = 2 输出 ...
- leetcode 61 旋转链表 c++
题目: 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. 示例1: 输入: 1->2->3->4->5->NULL, k = 2 输出: ...
- LeetCode 61——旋转链表
1. 题目 2. 解答 2.1. 方法一 将链表每个节点向右移动 1 个位置,其实就是让链表最后一个结点指向第一个结点. 因此,向右移动 k 个位置就重复上述过程 k 次即可. 然后,我们注意到,若链 ...
最新文章
- 2012年技术图书大盘点
- OpenGL HDR曝光的实例
- (转)LCA模板(倍增法)
- python遍历二维数组需要注意的是_for循环获取二维数组的元素时的bug
- linux dhcp 服务(转)
- XGBoost的安装与介绍
- python中os模块_Python的武器库11:os模块
- SQL 必知必会·笔记20高级SQL特性
- PID控制器开发笔记(转)
- 【服务器】【个人图床】宝塔安装Chevereto
- 孙鑫VC学习笔记:第十二讲 (六) 读写注册表
- alreader 2 android,AlReader2
- 易语言禁用计算机指令大全,易语言电脑屏幕锁定工具源码
- postman接口测试如何发送json
- numpy简单快速安装教程
- 双三次插值c语言源代码,双三次插值原理及MATLAB源码实现
- 基于微信小程序的实验室管理系统 文档+云开发项目源码及云数据库+部署说明
- WIN10下TensorFlow GPU版安装顺序
- 测试jre 和jdk是否安装好
- libxml2的安装和使用
热门文章
- aws ec2 linux 密码,AWS EC2实例Ubuntu系统设置root用户密码并使用root/ubuntu用户登录
- python计算消费总额_Python在校园数据分析中的应用——以一卡通消费为例
- 2022-03-03 html网页布局练习(二):使用float浮动+html5新增标签进行网页布局
- MATLAB拟合中的fit用法
- ac97与intel HD audio
- PPT取消密码保护(软件)
- 数字化校园建设之实践二
- Vue实现自定义表格合并
- keep-alive有关的生命周期有那些?
- wps制作pdf模板,Adobe Acrobat DC利用pdf模板做填充数据表单域,在maven项目中利用java生成pdf