1. 程式人生 > >25 Reverse Nodes in k-Group

25 Reverse Nodes in k-Group

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; } };