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

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

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;
}
全部评论

相关推荐

码农索隆:单休一个月少休息4天,一年就是48天,平时节假日,别人3天假期,单休的两天
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
半解316:内容充实,细节需要修改一下。 1,整体压缩为一页。所有内容顶格。 2,项目描述删除,直接写个人工作量 修改完之后还需要建议,可以私聊
点赞 评论 收藏
分享
身边有人上海、深圳&nbsp;6、7k&nbsp;都去了,真就带薪上班了。
小浪_coder:深圳除了一些计算机,UI设计,金融类等一些可以月薪过万的工作之外, 认识很多朋友做运营,营销,文员的工作, 月薪基本都在4-6K左右,还有大把人在干
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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