美文网首页
利用系统栈使一个栈逆序

利用系统栈使一个栈逆序

作者: shoulda | 来源:发表于2018-07-17 16:47 被阅读0次

    题目:

    给你一个栈, 请你逆序这个栈, 不能申请额外的数据结构, 只能
    使用递归函数。 如何实现?
    非常经典的做法

    package basic_class_07;
    
    import java.util.Stack;
    
    public class Code_06_ReverseStackUsingRecursive {
    
        public static void reverse(Stack<Integer> stack) {
            if (stack.isEmpty()) {
                return;
            }
            int i = getAndRemoveLastElement(stack);
            reverse(stack);
            stack.push(i);
        }
    
        public static int getAndRemoveLastElement(Stack<Integer> stack) {
            int result = stack.pop();
            if (stack.isEmpty()) {
                return result;
            } else {
                int last = getAndRemoveLastElement(stack);
                stack.push(result);
                return last;
            }
        }
    
        public static void main(String[] args) {
            Stack<Integer> test = new Stack<Integer>();
            test.push(1);
            test.push(2);
            test.push(3);
            test.push(4);
            test.push(5);
            reverse(test);
            while (!test.isEmpty()) {
                System.out.println(test.pop());
            }
    
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:利用系统栈使一个栈逆序

          本文链接:https://www.haomeiwen.com/subject/mwrgpftx.html