美文网首页
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