首页 > 代码库 > LeetCode OJ 61. Rotate List
LeetCode OJ 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
.
Subscribe to see which companies asked this question
解答:
不是很懂这道题的通过率为何如此之低,其实只要考虑三种边界情况就可以了,一是空链表的时候,二是k是链表节点数整数倍的时候,三是k大于链表节点数的时候……
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* rotateRight(struct ListNode* head, int k) { int count = 0, i; struct ListNode *pNode = head, *tmp; if(NULL == head) return; while(NULL != pNode){ count++; pNode = pNode->next; } pNode = head; for(i = 0; i < count - k % count - 1; i++){ pNode = pNode->next; } tmp = pNode->next; pNode->next = NULL; if(NULL == tmp) return head; pNode = tmp; while(NULL != pNode->next){ pNode = pNode->next; } pNode->next = head; return tmp; }
LeetCode OJ 61. Rotate List
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。