百度站长平台网站体检,做个网站做什么呢,基于html5的wordpress,智慧小区网站建设审题#xff1a; 我们需要根据k的大小把链表向右移动对应次数#xff0c;并返回移动后的链表的头结点指针 思路#xff1a; 根据提示中的数据大小我们发现#xff1a;k的值可以远大于节点数。 也就是说我们对链表的操作存在周期#xff0c;如果k%len0#xff0c;说明我们… 审题 我们需要根据k的大小把链表向右移动对应次数并返回移动后的链表的头结点指针 思路 根据提示中的数据大小我们发现k的值可以远大于节点数。 也就是说我们对链表的操作存在周期如果k%len0说明我们就不用做任何操作了而如果k%len0,我们需要操作的次数就是运算后的余数。 第一步确定需要操作的次数 1写个getlen方法 2利用kk%len求出需要操作的次数k 实际上我们如果真的一次次去操作链表会发现一个问题我们如何更新指针 因为每次进行移动我们都需要头指针尾指针 问题出在尾指针又需要我们每次都去遍历一次链表来找。 那么我们有没有办法可以只进行一次操作呢 我们只需要找到移动k次后的头结点该头结点的前一个节点以及一开始的链表的尾结点即可 第二步找到三个关键节点 第三步修改指针指向 最后是特殊情况处理 解题 1确定需要操作的次数 getlen的逻辑就是遍历链表每次遍历到一个节点就让num直到遍历到空指针 特殊情况处理 1.当链表为空的时候len为0由于0不能做被除数所以这里k%0会出问题我们要提前截断这种情况 2.当k取余后为0说明不用我们操作直接返回head 2找到三个关键节点 疑问为什么prvleft需要指向一个哨兵节点 若他指向head先而我们的left最终也是head就会因为逻辑问题出错 3修改指针指向 61. 旋转链表 - 力扣LeetCode