32劍指OFFER之從上到下打印2叉樹

參考資料:

[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;
}
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容