队列完成BFS
- 判断根节点是否为空,非空,先进入队列中。
- 判断出节点是否为空,非空,保持val值,左右子节点进入队列。
- 队列弹出后,紧跟判断,为空停止循环
/*
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) {
//bfs
queue<TreeNode*> q;
vector<int> v;
if(!root)
{
return v;
}
q.push(root);
while(q.size())
{
TreeNode* node=q.front();
if(node)
{
v.push_back(node->val);
q.push(node->left);
q.push(node->right);
}
q.pop();
}
return v;
}
};