【劍指offer】題60:分層遍歷打印二叉樹


void Print(TreeNode* pRoot)
{
    queue<TreeNode*> que;
    int cur_count(0);
    int next_count(0);

    if (pRoot == NULL)
    {
        return;
    }

    que.push(pRoot);
    cur_count = 1;

    while (!que.empty())
    {
        for (auto i = 0; i < cur_count;++i)
        {
            TreeNode* ptmp = que.front();
            que.pop();
            cout << (char)ptmp->val << " ";
            if (ptmp->left != NULL)
            {
                que.push(ptmp->left);
                next_count++; 
            }
            if (ptmp->right != NULL)
            {
                que.push(ptmp->right);
                next_count++;
            }
        }
        cout << endl;
        cur_count = next_count;
        next_count = 0;
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章