參考資料:
[1]劍指OFFER課本
關(guān)鍵詞:
不需要遞歸J裉ぁ!掰吕!
思路:
把根節(jié)點(diǎn)放入隊(duì)列中果覆,要打印根節(jié)點(diǎn),把把根節(jié)點(diǎn)的左右子節(jié)點(diǎn)放入隊(duì)列中
反復(fù)這樣下去
自己的答案:
vector<int> PrintFromTopToBotton(BinaryTreeNode* pRoot)
{
vector<int> vecPrint;
//不需要遞歸
//把根節(jié)點(diǎn)放入隊(duì)列中殖熟,從隊(duì)列中push出來局待,打印并把節(jié)點(diǎn)的左右節(jié)點(diǎn)放入隊(duì)列中
//如此循環(huán)反復(fù)
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;
}