您的位置:首页 > 其它

【leetcode】Rotate List

2015-07-31 16:35 316 查看
class Solution {
public:
ListNode* rotateRight(ListNode* head, int k) {
if(head == NULL) return head;
ListNode *p = head;
int len = 0;
while(p->next){
p = p->next;
len++;
}
len++;

p->next = head;  //link head and tail

k %= len;
int temp = len - k;
while(temp > 0){
p = p->next;
temp--;
}
head = p->next;
p->next = NULL;

return head;

}
};


以上是AC代码

本题主要的技巧就是将链表首尾相连形成环

首先将k取余

标记出来倒数k+1位置的节点

最后将该节点的指向定义为新的头结点

再讲该指向NULL 来断开环链表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: