Thursday, October 22, 2015

Rotate List

Given a list, rotate the list to the right by k places, where k is non-negative.
For example:
Given 1->2->3->4->5->NULL and k = 2,
return 4->5->1->2->3->NULL.
思路:
1. 题目中k是非负,所以k可以等于0,k也可以大于链表长。
2. 空链表,单节点以及k为0时,直接返回原链表。
3. 链表长是必须得到的参数。
4. k存在大于链表长度的情况。此时应该用k除以链表长取模,得到真实的反转值。
5. 如果k是链表长度的倍数。直接返回原链表。
6. 双指针,其中从头开始一个先走k%size步,之后双指针同时走,直到先走的指针的next为空。
7. 反转。

No comments:

Post a Comment