Rotate List

来源:互联网 发布:暗黑之魂3捏脸数据 编辑:程序博客网 时间:2024/06/08 13:49

61. 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.

回想rotate Array的做法,有一种算法如下:

一个数组移动k次后,数组后面的k个元素将反转到数组的首部,下面的算法是:先将数组整体进行反转,然后再将数组的前k个元素进行反转,再将数组的后面n-k个元素进行反转,也就得到了最后的结果。

例子:Let n=7n=7 and k=3k=3.

Original List                   : 1 2 3 4 5 6 7After reversing all numbers     : 7 6 5 4 3 2 1After reversing first k numbers : 5 6 7 4 3 2 1After revering last n-k numbers : 5 6 7 1 2 3 4 --> Result
根据这个思想,我们也可以通过reverse实现链表rotate.

0 0
原创粉丝点击