LeetCode_155-Min Stack

Achieve stack, to pay more to obtain a minimum of

class MinStack {
public:
    struct Node {
        int nNum;
        int nMinNum;
        Node* pNext;
        Node() {
            pNext = nullptr;
        }
    };
    /** initialize your data structure here. */
    MinStack() {
        m_pHead = nullptr;
    }
 
    ~MinStack() {
        while(m_pHead != nullptr) {
            Node* pTmp = m_pHead;
            m_pHead = m_pHead->pNext;
            delete pTmp;
            pTmp = nullptr;
        }
    }
    
    void push(int x) {
        if(m_pHead == nullptr) {
            m_pHead = new Node;
            m_pHead->pNext = nullptr;
            m_pHead->nMinNum = x;
        }
        else {
            Node* pTmp = new Node;
            pTmp->nMinNum = m_pHead->nMinNum;
            pTmp->pNext = m_pHead;
            m_pHead = pTmp;
            IF (m_pHead-> nMinNum> x) { 
                m_pHead -> nMinNum = x; 
            } 
        } 
        M_pHead -> nNum = x; 
    } 
    
    Void pop () {
         IF (m_pHead! = Nullptr) { 
            Node * = pTmp m_pHead; 
            m_pHead = m_pHead-> pNext;
            delete pTmp; 
            pTmp = nullptr; 
        } 
    } 
    
    Int top () {
         IF(m_pHead! = nullptr) {
             return m_pHead-> nNum; 
        } 
        Return  0 ; 
    } 
    
    Int getMin () {
         return m_pHead-> nMinNum; 
    } 
    
Protected : 
    Node * m_pHead; 
};

Number may be concerned about the public learn more about interview skills

Guess you like

Origin www.cnblogs.com/yew0/p/11613919.html