25. Reverse Nodes in k-Group

459 阅读1分钟

难度:Hard

思路1

递归,然后逆转前k个元素

class Solution {
    public ListNode reverseKGroup(ListNode head, int k) {
        int cnt = 0;
        ListNode cur = head;
        while (cur != null && cnt != k) {
            cur = cur.next;
            cnt++;
        }
        if (k == cnt) {
            ListNode next = reverseKGroup(cur, k);
            while (cnt-- > 0) {
                ListNode tmp = head.next;
                head.next = next;
                next = head;
                head = tmp;
            }
            return next;
        }
        return head;
    }
}

思路2

迭代

更多