Leetcode 0025. Reverse Nodes in k-Group

居然把头插法写错了,debug了一个多小时
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* reverseKGroup(ListNode* head, int k) {
        if(k == 1 || head == nullptr)  return head;
        ListNode *tail = head;
        int i;
        for(i=0;i<k && tail != nullptr;i++,tail=tail->next);
        if(i<k) return head;
        tail = reverseKGroup(tail, k);
        ListNode* rear = head,*tmp=nullptr;
        head= tail;
        for(int i = 0;i<k;i++){
              tmp = rear->next;        
              rear->next = head;
              head = rear;
              rear = tmp;
        }
        return head;
    }
};
View Code

 

posted @ 2016-09-15 00:38  zeroArn  阅读(111)  评论(0)    收藏  举报