一、题目描述
给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。
示例 1:
1 | 输入: 1->2->3->4->5->NULL, k = 2 |
示例 2:
1 | 输入: 0->1->2->NULL, k = 4 |
二、题解
1.算法描述
- 快慢双指针
2.个人分析
首先遍历链表,得到其长度,对
K
取余然后使用快慢指针,先让快指针走
K
步,在让快慢指针一起走然后将慢指针后边的链表放在链表头前边即可
3.代码
1 | struct ListNode *rotateRight(struct ListNode *head, int k) |