题解 | #用递归函数和栈逆序一个栈#

用递归函数和栈逆序一个栈

http://www.nowcoder.com/practice/1de82c89cc0e43e9aa6ee8243f4dbefd

C++

#include<stack>

using namespace std;

class Solution {
public:
    stack<int> ReverseStackUsingRecursive(stack<int>& st) {
        if (st.empty()) {
            return st;
        }
        int i = process(st);
        ReverseStackUsingRecursive(st);
        st.emplace(i);
        return st;
    }
    int process(stack<int>& st) {
        int result = st.top();
        st.pop();
        if (st.empty()) {
            return result;
        }
        else {
            int last = process(st);
            st.emplace(result);
            return last;
        }
        
    }
};
int main() {
    int N;
    cin >> N;
    stack<int> st;
    int n;
    for (int i = 0; i < N; ++i) {
        cin >> n;
        st.emplace(n);
    }
    Solution sol;
    
    st = sol.ReverseStackUsingRecursive(st);
    for (int i = 0; i < N; ++i) {
        cout << st.top() << ' ';
        st.pop();
    }
    return 0;
}
全部评论

相关推荐

仁者伍敌:牛子这些人还会点一个自动回复,boss都不带回复的
点赞 评论 收藏
分享
陆续:不可思议 竟然没那就话 那就我来吧 :你是我在牛客见到的最美的女孩
点赞 评论 收藏
分享
ohs的小木屋:比不少实习待遇高了
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务