Leetcode链表刷题之:61.旋转链表

题目描述:

给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。

示例 1:

输入: 1->2->3->4->5->NULL, k = 2
输出: 4->5->1->2->3->NULL
解释:
向右旋转 1 步: 5->1->2->3->4->NULL
向右旋转 2 步: 4->5->1->2->3->NULL
示例 2:

输入: 0->1->2->NULL, k = 4
输出: 2->0->1->NULL
解释:
向右旋转 1 步: 2->0->1->NULL
向右旋转 2 步: 1->2->0->NULL
向右旋转 3 步: 0->1->2->NULL
向右旋转 4 步: 2->0->1->NULL

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/rotate-list
 

解题思路及代码:

### 解题思路
向右移动K个位置,即向左移动N-K个位置,N为链表结点个数。将链表尾结点与头结点相连,形成环形链表,再根据左移的位置数,从原始的头结点开始向后移动N-K个位置,找到新链表的尾结点,将尾结点的下一个设置成新链表的头结点,尾结点指向None,即完成题目要求。
### 代码

```python
# Definition fo

你可能感兴趣的:(面试题,LeetCode,编程练习,链表,leetcode)