【剑指Offer】T32 从上往下打印二叉树(层次遍历)

从上往下打印出二叉树的每个节点,同层节点从左至右打印。

思路:借助队列,入队根节点。打印当前层后出队,如果左右子树存在则入队。一直循环到队空。

vector<int> PrintFromTopToBottom(TreeNode* root) {
    vector<int> arr;
    if(!root)
        return arr;
    
    queue<TreeNode*> Q;
    Q.push(root);
    while(!Q.empty()){
        TreeNode* q = Q.front();
        arr.push_back(q->val);
        Q.pop();// 访问完后就出队
        
        if(q->left)
            Q.push(q->left);
        if(q->right)
            Q.push(q->right);
    }
    return arr;
}

按层打印
https://ariser.cn/index.php/archives/400/

本文链接:https://ariser.cn/index.php/archives/375/
本站文章采用 知识共享署名4.0 国际许可协议进行许可,请在转载时注明出处及本声明!