25. Reverse Nodes in k-Group

/**
 * 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) {
        ListNode* tmp = head;
        for (int i = 0; i < k; i++) {
            if (!tmp) return head;
            tmp = tmp->next;
        }
        ListNode* pre = reverseKGroup(tmp, k);
        for (int i = 0; i < k; i++) {
            tmp = head->next;
            head->next = pre;
            pre = head;
            head = tmp;
        }
        return pre;
    }
};

results matching ""

    No results matching ""