void reverseAddNodes(TreeNode* start, TreeNode* end, vector<int>& nodes) { reverseNodes(start, end); TreeNode* node = end; while (true) { nodes.push_back(node -> val); if (node == start) break; node = node -> right; } reverseNodes(end, start); }
ListNode* reverseKGroup(ListNode* head, int k) { int i; ListNode hh(0); hh.next=head; ListNode *p=&hh,*q,*t; while(1) { for(i=0,q=p;i<k&&q!=NULL;i++,q=q->next); if(q==NULL) { break; } t=p->next; reverseNodes(p,q->next); p=t; } return hh.next; }