解题思路
1.定义 cur 指针,遍历链表,直到链表的尾指针,在遍历的过程中,同时记录链表的长度 n
2.将链表的尾节点指向链表的头节点,即形成一个闭环
3.计算 k % n 的值
4.从头节点开始往前走 n - k - 1 步,因为链表向右移动 k 个位置,类似于将环状链表从倒数第 k 个节点断开
5.记录当前节点的下一个节点为 head,并且将当前节点指向 null
6.返回 head,即为链表向右移动 k 个位置之后的链表
var rotateRight = function(head, k) {
if (!head || !head.next || k === 0) return head
let cur = head, n = 1
while (cur.next) {
cur = cur.next
n++
}
cur.next = head
k %= n
let i = n - k
while (--i) {
head = head.next
}
cur = head
head = cur.next
cur.next = null
return head
};