从上往下打印二叉树

  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

文章标题:从上往下打印二叉树

字数:222

本文作者:攀登

发布时间:2019-12-26, 23:06:07

最后更新:2024-06-15, 15:53:35

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

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

×

喜欢就点赞,疼爱就打赏