LC25. Reverse Nodes in k-Group 작성일 2019-08-17 https://leetcode.com/problems/reverse-nodes-in-k-group/ 상수공간만 쓰는 연결리스트 문제. 일단 코드가 길어질 수 밖에 없는 조건이긴 하다. 그래도 너무 심하게 복잡해졌음.. 좀 간단하게 다시 짜볼 필요가 있다. 처음부터 디버거를 쓰지 않도록 노력할것! 1234567891011121314151617181920212223242526272829303132333435/** * 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(k == 1) return head; ListNode *right = head, *left = nullptr, *back, *res = nullptr, *temp, *ltemp; while (1) { ltemp = left; back = left = right; int i; for(i = 0; i < k && right; i++) right = right->next; if(i != k){ if(!res) res = head; break; } for(int i = 0; i < k-1; i++) { temp = back; back = left->next; left->next = back->next; back->next = temp; } if(!res) res = back; if(ltemp) ltemp->next = back; } return res; } };