Reverse Nodes in k-Group short and 24ms AC

来源:互联网 发布:java 注解实例 编辑:程序博客网 时间:2024/06/05 05:02
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;    }};

0 0