依次将节点的左子树,右子树放入队列。
#include"iostream"
#include"queue"
using namespace std;
struct TreeNode
{
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x):val(x),left(NULL),right(NULL){}
};
void BFSPrint(TreeNode *root){
queue<TreeNode*> Q;
Q.push(root);
while(!Q.empty()){
TreeNode *Node=Q.front();
Q.pop();
cout<<Node->val<<endl;
if(Node->left)
Q.push(Node->left);
if(Node->right)
Q.push(Node->right);
}
}
int main()
{
TreeNode a(1);
TreeNode b(2);
TreeNode c(5);
TreeNode d(3);
TreeNode e(4);
TreeNode f(6);
a.left=&b;
a.right=&c;
b.left=&d;
b.right=&e;
c.right=&f;
BFSPrint(&a);
return 0;
}