Skip to main content
Latest
File
import { getEndOfList } from "../merge-in-between-linked-lists/get_end_of_list.ts";import { get_deep_next_of_list } from "../reverse-linked-list-ii/get_deep_next_of_list.ts";import reverse_Linked_List from "../reverse-linked-list/index.ts";import { ListNode } from "../reverse-linked-list/ListNode.ts";
import { greater_equal_length_of_list } from "./greater_equal_length_of_list.ts";
function reverseKGroup(head: ListNode | null, k: number): ListNode | null { if (k <= 1) return head; if (!head) return null; if (greater_equal_length_of_list(head, k)) { const res = new ListNode(0, head); const end = get_deep_next_of_list(head, k - 1);
const next = end.next;
end.next = null; res.next = reverse_Linked_List(head); if (res.next) { getEndOfList(res.next).next = reverseKGroup(next, k); } return res.next; } else { return head; }}export default reverseKGroup;