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