从上往下打印二叉树

  1. 层序打印二叉树,每一层从左往右打印

层序打印二叉树,每一层从左往右打印

  • 层序遍历,用辅助队列
  • 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};*/
class Solution {
public:
    // 层序遍历,用辅助队列
    // 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
    vector<int> PrintFromTopToBottom(TreeNode* root) {
        vector<int> ans;
        // 辅助队列
        queue<TreeNode*> queue_tree;
        // 特殊情况处理
        if (root == nullptr) {
            return ans;
        } 
        // 层序遍历
        queue_tree.push(root);
        while(!queue_tree.empty()){
            // 获取数据,存入结果
            TreeNode * node = nullptr;
            node = queue_tree.front();
            queue_tree.pop();// 将一遍历的节点出栈
            ans.push_back(node->val);
            // 左右节点入队
            if (node->left != nullptr) {
                queue_tree.push(node->left);
            }
            if (node->right != nullptr) {
                queue_tree.push(node->right);
            }
        }
        return ans;
        
    }
};

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1056615746@qq.com

💰

Title:从上往下打印二叉树

Count:222

Author:攀登

Created At:2019-12-26, 23:06:07

Updated At:2024-06-15, 15:53:35

Url:http://jiafeimao-gjf.github.io/2019/12/26/sword-print-BTree-by-level-in-a-line/

Copyright: 'Attribution-non-commercial-shared in the same way 4.0' Reprint please keep the original link and author.

×

Help us with donation