首页 > 代码库 > Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. k is a positive integer and is less than or equal to the length of the linked list. If the number of

Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. k is a positive integer and is less than or equal to the length of the linked list. If the number of

class Solution {  public:      ListNode *reverseKGroup(ListNode *head, int k) {          if (!head || !(head->next) || k < 2)              return head;                    // count k nodes          ListNode *nextgp = head;          for (int i = 0; i < k; i++)              if (nextgp)                  nextgp = nextgp->next;              else                  return head;            // reverse          ListNode *prev = NULL, *cur = head, *next = NULL;          while (cur != nextgp) {              next = cur->next;              if (prev)                  cur->next = prev;              else                  cur->next = reverseKGroup(nextgp, k);              prev = cur;              cur = next;          }          return prev;      }  };

  

Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. k is a positive integer and is less than or equal to the length of the linked list. If the number of