diff --git a/src/main/java/com/thealgorithms/datastructures/queues/ReverseQueueRecursion b/src/main/java/com/thealgorithms/datastructures/queues/ReverseQueueRecursion new file mode 100644 index 000000000000..c166b44792c0 --- /dev/null +++ b/src/main/java/com/thealgorithms/datastructures/queues/ReverseQueueRecursion @@ -0,0 +1,26 @@ +package com.thealgorithms.datastructures.queues; + +import java.util.Queue; + +/** + * Reverse a queue using recursion. + */ +public final class ReverseQueueRecursion { + + private ReverseQueueRecursion() { + // private constructor to prevent instantiation + } + + /** + * Reverses the given queue recursively. + * + * @param queue the queue to reverse + * @param type of elements in the queue + */ + public static void reverseQueue(Queue queue) { + if (queue.isEmpty()) return; + T front = queue.poll(); + reverseQueue(queue); + queue.add(front); + } +}