public void reverseQueueFirstKElement(int k, Queue<Integer> q) {
if (q == null || k > q.size()) {
throw new IllegalArgumentException();
} else if (k > 0) {
Stack<Integer> s = new Stack<Integer>();
for (int i = 0; i < k; i++) {
s.push(q.remove());
}
while (!s.isEmpty()) {
q.add(s.pop());
}
for (int i = 0; i < q.size() - k; i++) {
q.add(q.remove());
}
}
}
No comments:
Post a Comment