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.
找到头,找到尾,找到位移完的头和尾,拼起来就好。
var rotateRight = function(head, k) {
if (!head || k <= 0)
return head;
var count = 0;
var begin = head;
var end = null;
while (begin) {
end = begin;
begin = begin.next;
count++;
}
k = count - k%count;
if (k===count)
return head;
//console.log(k)
begin = head;
var pre = null;
while(k>0) {
pre = begin;
begin = begin.next;
k--;
}
end.next = head;
pre.next = null;
return begin;
};
网友评论