25 Reverse Nodes in k-Group
阿新 • • 發佈:2018-11-25
class Solution {
public:
ListNode* reverseKGroup(ListNode* head, int k) {
bool flag = false;
bool chk = false;
ListNode *p;
ListNode *temp;
ListNode *firstNode;
ListNode *idx= new ListNode(-1);
while (!flag) {
p = head;
for (int i = 0; i < k; ++i) {
if (!p) {
if (!chk)return head;
flag = true;
break;
}
p = p->next;
}
if(!flag){
while (head != p) {
temp = new ListNode(head->val);
temp->next = idx->next;
idx->next = temp;
head = head->next;
}
if (!chk) {
chk = true;
firstNode = idx;
}
while (idx->next)idx = idx->next;
}
else {
idx->next = head;
}
}
return firstNode->next;
}
};