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.

找到头,找到尾,找到位移完的头和尾,拼起来就好。

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;
};

你可能感兴趣的:(61. Rotate List)