码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode OJ 61. Rotate List

时间:2016-11-16 19:43:40      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:scribe   where   span   str   log   大于   ini   this   next   

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

标签:scribe   where   span   str   log   大于   ini   this   next   

原文地址:http://www.cnblogs.com/YuNanlong/p/6055464.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!