參考資料:
[1]劍指OFFER課本
關鍵詞:
不需要遞歸?。?!
思路:
把根節(jié)點放入隊列中,要打印根節(jié)點,把把根節(jié)點的左右子節(jié)點放入隊列中
反復這樣下去
自己的答案:
vector<int> PrintFromTopToBotton(BinaryTreeNode* pRoot)
{
vector<int> vecPrint;
//不需要遞歸
//把根節(jié)點放入隊列中,從隊列中push出來,打印并把節(jié)點的左右節(jié)點放入隊列中
//如此循環(huán)反復
if (pRoot == nullptr)
return vecPrint;
queue<BinaryTreeNode*> queTmp;
queTmp.push(pRoot);
while (!queTmp.empty())
{
BinaryTreeNode* pNode = queTmp.front();
vecPrint.push_back(pNode->m_nKey);
queTmp.pop();
if (pNode->m_pLeft)
queTmp.push(pNode->m_pLeft);
if (pNode->m_pRight)
queTmp.push(pNode->m_pRight);
}
return vecPrint;
}