您的位置:首页 > 其它

leetcode 61. Rotate List

2016-04-15 09:15 225 查看

题意

旋转链表

题解

k可能大于链表节点个数n,由于没旋转n次又回到原链表,所以最终只需要旋转k%n次。

代码

“`c++

class Solution {

public:

ListNode* rotateRight(ListNode* head, int k) {

if(head == NULL)

return NULL;

int n = 0;

ListNode *iter = head;

while(iter)

{

iter = iter->next;

n++;

}
k = k % n;

ListNode *right = head;

int i = 0;

while(right->next && i < k) //right go first by k steps

{

right = right->next;

i++;

}
ListNode *left = head;

while(right->next)

{

right = right->next;

left = left->next;

}
right->next = head;

head = left->next;

left->next = NULL;

return head;

}


};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: