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

LeetCode "Reverse Nodes in k-Group"

时间:2014-08-06 06:14:10      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   io   for   div   amp   

Another list manipulation problem.

class Solution {
public:
    ListNode *reverseKGroup(ListNode *head, int k) {
        if (!head) return head;
        if (!head->next) return head;
        if (k == 1) return head;

        ListNode dum(-1); dum.next = head;
        ListNode *pProb = &dum;
        while (pProb)
        {
            //    Prob    
            ListNode *pPre = pProb;
            int cnt = k;
            while(cnt-- && pProb)    pProb = pProb->next;
            //    Valid? (= k)
            if(pProb)
            {
                ListNode *pEnd = pProb->next;
                
                ListNode *pToConn = pPre;
                ListNode *pOrig = pPre->next;
                for(int i = k; i >= 1; i --)
                {
                    ListNode *p = pToConn;
                    int cnt0 = i;
                    while(cnt0--) p = p->next;
                    pToConn->next = p;
                    pToConn = p;
                    p->next = pOrig;
                }
                pProb = pToConn;
                pToConn->next = pEnd;
            }            
        }
        return dum.next;
    }
};

LeetCode "Reverse Nodes in k-Group",布布扣,bubuko.com

LeetCode "Reverse Nodes in k-Group"

标签:des   style   blog   color   io   for   div   amp   

原文地址:http://www.cnblogs.com/tonix/p/3893605.html

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