class Solution {
public:
ListNode* reverseKGroup(ListNode* head, int k) {
<span style="white-space:pre"> </span>if (!head || k <= 0) return head;
int len = 0;
ListNode dummy(0), *iter = &dummy;
dummy.next = head;
while (head) {
++ len;
head = head->next;
}
int n = len / k;
while (n --) {
ListNode* groupTail = iter->next, *groupHead = iter, *next = iter->next;
int index = k;
while (index --) {
ListNode *tmp = next->next;
next->next = iter;
iter = next;
next = tmp;
}
groupTail->next = next;
groupHead->next = iter;
iter = groupTail;
}
return dummy.next;
}
};
Reverse Nodes in k-Group short and 24ms AC
最新推荐文章于 2024-05-28 00:32:36 发布