当前位置:网站首页>LeetCode_ Double pointer_ Medium_ 61. rotating linked list
LeetCode_ Double pointer_ Medium_ 61. rotating linked list
2022-07-06 19:29:00 【Old street of small town】
1. subject
Give you a list of the head node head , Rotate the list , Move each node of the list to the right k A place .
Example 1:
Input :head = [1,2,3,4,5], k = 2
Output :[4,5,1,2,3]
Example 2:
Input :head = [0,1,2], k = 4
Output :[2,0,1]
Tips :
The number of nodes in the linked list is in the range [0, 500] Inside
-100 <= Node.val <= 100
0 <= k <= 2 * 109
source : Power button (LeetCode)
link :https://leetcode.cn/problems/rotate-list
2. Ideas
(1) Double pointer
See the comments in the following code for the detailed analysis process .
3. Code implementation (Java)
// Ideas 1———— Double pointer
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */
class Solution {
public ListNode rotateRight(ListNode head, int k) {
// Consider special circumstances
if (k == 0 || head == null || head.next == null) {
return head;
}
// Calculate the length of the list
int length = 0;
ListNode aux = head;
while (aux != null) {
aux = aux.next;
length++;
}
// When k > length when , Its rotation results are consistent with k = k % length equally
k = k % length;
if (k == 0) {
// k % length If it is equal to 0, shows length yes k Integer multiple , After the rotation, the result is the same as the original , So go straight back to head
return head;
}
/* set up n = length V1 -> V2 -> ... -> V(n-k-1) -> V(n-k) -> ... -> Vn -> null Move each node of the list to the right k After two positions , obtain : V(n-k) -> ... -> Vn -> V1 -> V2 -> ... -> V(n-k-1) -> null So you just need to find the node first V(n-k-1)、V(n-k) as well as Vn, Then make V(n-k-1).next = null Vn.next = V1( namely head) Finally back to V(n-k) that will do V(n-k-1)、V(n-k) as well as Vn Corresponding to lastNode、newHead And the last while At the end of the cycle aux */
aux = head;
ListNode lastNode = head;
int tmp = length - k;
while (tmp > 0) {
aux = aux.next;
if (tmp != 1) {
lastNode = lastNode.next;
}
tmp--;
}
lastNode.next = null;
ListNode newHead = aux;
while (aux.next != null) {
aux = aux.next;
}
aux.next = head;
return newHead;
}
}
边栏推荐
- R language uses the order function to sort the dataframe data, and descending sorting based on a single field (variable)
- 【翻译】供应链安全项目in-toto移至CNCF孵化器
- short i =1; i=i+1与short i=1; i+=1的区别
- 凤凰架构2——访问远程服务
- Actf 2022 came to a successful conclusion, and 0ops team won the second consecutive championship!!
- A full set of teaching materials, real questions of Android interview of 7 major manufacturers including Alibaba Kwai pinduoduo
- LeetCode-1279. Traffic light intersection
- R language ggplot2 visualization: use the ggdotplot function of ggpubr package to visualize dot plot, set the palette parameter, and set the colors of data points and box graphs of dot plots at differ
- How to do smoke test
- Computer network: sorting out common network interview questions (I)
猜你喜欢
LeetCode-1279. 红绿灯路口
接雨水问题解析
包装行业商业供应链管理平台解决方案:布局智慧供应体系,数字化整合包装行业供应链
时钟轮在 RPC 中的应用
An error occurs when installing MySQL: could not create or access the registry key needed for the
Mysql Information Schema 学习(一)--通用表
zabbix 代理服务器 与 zabbix-snmp 监控
打家劫舍III[后序遍历与回溯+动态规划]
Simple understanding of MySQL database
Tongyu Xincai rushes to Shenzhen Stock Exchange: the annual revenue is 947million Zhang Chi and Su Shiguo are the actual controllers
随机推荐
Countdown 2 days | live broadcast preview of Tencent cloud message queue data import platform
通俗的讲解,带你入门协程
业务与应用同步发展:应用现代化的策略建议
【基础架构】Flink/Flink-CDC的部署和配置(MySQL / ES)
快速幂模板求逆元,逆元的作用以及例题【第20届上海大学程序设计联赛夏季赛】排列计数
R language uses the order function to sort the dataframe data, and descending sorting based on a single field (variable)
Pychrm Community Edition calls matplotlib pyplot. Solution of imshow() function image not popping up
Carte de réflexion + code source + notes + projet, saut d'octets + jd + 360 + tri des questions d'entrevue Netease
Translation D28 (with AC code POJ 26:the nearest number)
Is not a drawable (color or path): the vector graph downloaded externally cannot be called when it is put into mipmap, and the calling error program crashes
How to access localhost:8000 by mobile phone
关于图像的读取及处理等
安装Mysql报错:Could not create or access the registry key needed for the...
[玩转Linux] [Docker] MySQL安装和配置
Modulenotfounderror: no module named 'PIL' solution
Take a look at how cabloyjs workflow engine implements activiti boundary events
黑馬--Redis篇
Interview assault 63: how to remove duplication in MySQL?
【翻译】数字内幕。KubeCon + CloudNativeCon在2022年欧洲的选择过程
Tensorflow2.0 自定义训练的方式求解函数系数