算法-从上往下打印二叉树详解编程语言

/*
	[从上往下打印出二叉树的每个节点,同层节点从左至右打印。]
    
    [题目]
	从上往下打印出二叉树的每个节点,同层节点从左至右打印。

    [解析]
    熟悉队列的应用。

*/

#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>

using namespace std;

struct TreeNode{
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int x):val(x), left(NULL), right(NULL) {}
};

class Solution{
public:
    vector<int> PrintFromTopToBottom(TreeNode* root){
        vector<int> ans;
        if(root == NULL)
            return ans;
        queue<TreeNode*> Q;
        Q.push(root);
        while(!Q.empty()){
            TreeNode* p = Q.front();
            Q.pop();
            ans.push_back(p->val);
            if(p->left)
                Q.push(p->left);
            if(p->right)
                Q.push(p->right);
        }

        return ans;
    }
};

int main()
{
    return 0;
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/15319.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论