这个题也是新刷 但是能理解个9成吧 我听完船长和助教的讲解开始写, 没有遇到多少问题,所以直接贴代码我把每一步的代码都注释了,估计在写个两三次就能完全理解会写了,至少下一次在写估计能一次写完
var rotateRight = function (head, k) {
// 判断 因为下面 循环用cur.next
if (!head) return null;
let cur = head, size = 1;
// 1 记录一下链表的长度
while (cur.next) {
cur = cur.next;
size += 1;
}
// 2 连城还
cur.next = head;
// 3 旋转k步骤 这里需要考虑 k值比较大 走n圈 所以所以去模
k %= size;
// 这一步 按照船长讲解 是循环右移动 所以是需要见一下
k = size - k;
// 4 开始旋转
while (k--) {
cur = cur.next;
}
// 5 就是把新链表的头节点 cur.next 赋值给head 然后掐断
head = cur.next;
cur.next = null;
return head;
};
每一步都有我的理解注释 都不过多解释了