Leetcode 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.

将链表右移K位。

先遍历链表知道链表的长度,移动的位数会出现大于链表长度的情况,所以k=k%cnt

这样只要在cnt-k处断开链表,把后面的部份放在前脸部分的前面就得到新的链表了。

/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* rotateRight(ListNode* head, int k) {
ListNode* p=head;
if(!p) return p;
int cnt=1,cnt2=1;
while(p->next!=NULL)
{
cnt++;
p=p->next;
}
k%=cnt;
if(k==0) return head;
cnt-=k;
ListNode* q=head;
while(cnt2!=cnt)
{
cnt2++;
q=q->next;
}
p->next=head;
head=q->next;
q->next=NULL;
return head;
}
};

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » Leetcode 61 Rotate List

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡