当前位置: 首页> 文旅> 文化 > 【LeetCode】旋转链表

【LeetCode】旋转链表

时间:2025/8/24 3:05:17来源:https://blog.csdn.net/qq_26521261/article/details/140578742 浏览次数:0次

目录

  • 一、题目
  • 二、解法
  • 完整代码


一、题目

给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。

示例 1:
在这里插入图片描述

输入:head = [1,2,3,4,5], k = 2
输出:[4,5,1,2,3]
示例 2:
在这里插入图片描述

输入:head = [0,1,2], k = 4
输出:[2,0,1]

提示:

链表中节点的数目在范围 [0, 500] 内
-100 <= Node.val <= 100
0 <= k <= 2 * 109


二、解法

先取余,化简一下k,然后找到倒数第k+1个节点,然后做断开重新连接的动作


完整代码

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def rotateRight(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:if not head:return headdummy = cur = ListNode()dummy.next = headtot = 0while cur.next:cur = cur.nexttot += 1last = curcur = dummyk %= tottmp = curfor _ in range(k + 1):tmp = tmp.nextkk = curwhile tmp:kk = kk.nexttmp = tmp.nextnewHead = kk.nextif not newHead:return dummy.nextlast.next = headkk.next = Nonereturn newHead

关键字:【LeetCode】旋转链表

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: