标签:return algorithm string lan pre back main 头部 while
从上到下打印二叉树(其实就是广度优先遍历),引用辅助队列。
不管是广度优先遍历一幅有向图还是一棵树,都要用到队列。首先把起始节点(对树而言是根节点)放入队列。接下来每次从队列的头部取出一个节点,遍历这个节点之后把它能到达的节点(对树而言是子节点)都依次放入队列。重复这个遍历过程,知道队列中的节点全部被遍历完为止。
#include <iostream>
#include <vector>
#include <stack>
#include <cstring>
#include <queue>
#include <algorithm>
using namespace std;
struct TreeNode{
int val;
struct TreeNode* left;
struct TreeNode* right;
TreeNode(int val):val(val),left(nullptr),right(nullptr){}
};
queue<TreeNode *> queueTreeNode;
vector<int> PrintFromTopToBottom(TreeNode* root){
vector<int> ans;
if(root == nullptr){
return ans;
}
queueTreeNode.push(root);
while(queueTreeNode.size() > 0){
// 获取队首的节点
TreeNode* pNode = queueTreeNode.front();
queueTreeNode.pop();
ans.push_back(pNode->val);
if(pNode->left != nullptr)
queueTreeNode.push(pNode->left);
if(pNode->right != nullptr)
queueTreeNode.push(pNode->right);
}
return ans;
}
int main()
{
return 0;
}
标签:return algorithm string lan pre back main 头部 while
原文地址:https://www.cnblogs.com/flyingrun/p/13389109.html