Monday, September 23, 2013

Stack Reverse (O(n*2) time O(n) space)

package linkedList;
import java.util.Stack;
public class StackReversal {
public static void main(String args[]) {
Stack<Integer> stack = new Stack<Integer>();
stack.push(1);
stack.push(2);
stack.push(3);
System.out.println(stack.toString());
reverseStack(stack);
System.out.println(stack.toString());
}
private static void reverseStack(Stack<Integer> stack) {
if(stack.isEmpty()) {
return;
}
int temp =stack.pop();
reverseStack(stack);
insertAtBottom(stack,temp);
}
private static void insertAtBottom(Stack<Integer> stack, int data) {
if(stack.isEmpty()) {
stack.push(data);
return;
}
int temp = stack.pop();
insertAtBottom(stack, data);
stack.push(temp);
}
}
view raw gistfile1.java hosted with ❤ by GitHub