美文网首页
4_5栈的反转

4_5栈的反转

作者: X_Y | 来源:发表于2017-09-11 17:49 被阅读9次

    实现一个栈的逆序,但是只能用递归函数和这个栈本身的pop操作来实现,而不能自己申请另外的数据结构。

    给定一个整数数组A即为给定的栈,同时给定它的大小n,请返回逆序后的栈。

    测试样例:
    输入:[4,3,2,1],4
    返回:[1,2,3,4]

    class StackReverse {
    public:
        int get(vector<int> &A)
        {
            int curr = A.back();
            A.pop_back();
            if(A.empty()){
                return curr;
            }else{
                int result = get(A);
                A.push_back(curr);
                return result;
            }
        }
        void reverseStack__(vector<int> &A){
            if(A.empty()){
                return;
            }
            int temp = get(A);
            reverseStack__(A);
            A.push_back(temp);
            return;
        }
        vector<int> reverseStack(vector<int> A, int n) {
            // write code here
            reverseStack__(A);
            return A;
        }
    };
    

    相关文章

      网友评论

          本文标题:4_5栈的反转

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