leetcode Reverse Nodes in k-Group

来源:互联网 发布:linux上一级目录 编辑:程序博客网 时间:2024/05/16 03:48
/** * 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(head == NULL || k <= 1){            return head;        }        int len = 0;        ListNode* tmp = head;        while(tmp != NULL){            tmp = tmp->next;            len++;        }        if(len < k){            return head;        }        ListNode* rec = NULL;        ListNode* prev = head;        tmp = head->next;        int cnt = 1;          while(cnt < k){            ListNode* recNext = tmp->next;            tmp->next = prev;            //不要忘了更新prev            prev = tmp;            tmp = recNext;            ++cnt;        }        head->next = reverseKGroup(tmp, k);        return prev;    }};
0 0
原创粉丝点击