美文网首页
Reverse stack using recursion

Reverse stack using recursion

作者: 黑山老水 | 来源:发表于2018-01-18 12:16 被阅读9次

    Description:

    Given a stack, reverse it using recursion.

    解题方法:

    通过递归,每次将top的元素pop出来,将其加入到栈的最底层。
    如果加入到最低层?
    通过递归,每层都出栈,直到栈为空。

    Time Complexity:

    O(n^2)

    完整代码:

    void reverse(stack<int>& S) {
        if(S.empty())
            return;
        int temp = S.top();
        S.pop();
        reverse(S);
        addToBottom(S, temp);
    }
    
    void addToBottom(stack<int>&S, int num) {
        if(S.empty()) 
            S.push(num);
        else {
            int temp = S.top();
            S.pop();
            addToBottom(S, num);
            S.push(temp);
        }
    }
    
    

    相关文章

      网友评论

          本文标题:Reverse stack using recursion

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