1 /**
 2  * Definition for singly-linked list.
 3  * struct ListNode {
 4  *     int val;
 5  *     ListNode *next;
 6  *     ListNode(int x) : val(x), next(NULL) {}
 7  * };
 8  */
 9 class Solution {
10 public:
11     ListNode *rotateRight(ListNode *head, int k) {
12         if (!head || !head->next) return head;
13         int len = 1;
14         ListNode *runner = head;
15         while (runner->next) {
16             runner = runner->next;
17             len++;
18         }
19         k %= len;
20         runner->next = head;
21         for (int i = 0; i < len-k; i++) {
22             runner = runner->next;
23         }
24         head = runner->next;
25         runner->next = NULL;
26         return head;
27     }
28 };

 

posted on 2015-03-23 11:44  keepshuatishuati  阅读(121)  评论(0编辑  收藏  举报