leetcode 剑指 Offer 09. 用两个栈实现队列

leetcode

C++:

class CQueue {
public:
    std::stack<int> headStack;
    std::stack<int> tailStack;

public:
    CQueue() {

    }
    
    void appendTail(int value) {

        this -> tailStack.push(value);
    }
    
    int deleteHead() {

        if ( this -> headStack.empty() ) {

            while ( !( this -> tailStack.empty() ) ) {

                this -> headStack.push( this -> tailStack.top() );
                this -> tailStack.pop();
            }
        }

        if ( !( this -> headStack.empty() ) ) {

            int returnedValue = this -> headStack.top();
            this -> headStack.pop();

            return returnedValue;
        }

        return -1;
    }
};

/**
 * Your CQueue object will be instantiated and called as such:
 * CQueue* obj = new CQueue();
 * obj->appendTail(value);
 * int param_2 = obj->deleteHead();
 */
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容