Rotate List

Posted hujianglang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.

struct ListNode

    int m_nKey;
    ListNode* next; 


class Solution
    public:
        ListNode* rotateRight(ListNode *head, int k)
            if(!head) return NULL;
            int n = 0;
            ListNode *cur = head;
            while(cur)
                ++n;
                cur = cur->next;
            
            
            k %= n;
            ListNode *fast = head, *slow = head;
            for(int i = 0; i < k; ++i)
            
                if(fast)
                    fast = fast->next;
            
            
            if(!fast) return head;
            while(fast->next)
                fast = fast->next;
                slow = slow->next;
            
            
            fast->next = head;
            fast = slow->next;
            slow->next = NULL;
            return fast;
        
;

 

以上是关于Rotate List的主要内容,如果未能解决你的问题,请参考以下文章

translate移动坐标,rotate实现2D自动旋转,translate和rotate实现2D旋转

jQuery .rotate() 不起作用

Unity脚本-Rotate旋转相关知识点

189. Rotate Array

glRotate 和我的矩阵::rotate

061. Rotate List