从上往下打印二叉树(分层遍历)
从上往下打印二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
从上到下打印二叉树的规律:每一次打印一个节点的时候,如果该节点有子节点,则把该节点的子节点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的节点,重复前面的打印操作,直到队列中所有的节点都被打印出来为止。
struct TreeNode { int val; TreeNode* left; TreeNode* right; }; void LevelOrder(BinaryTreeNode* root) { if (root == NULL) return; queue<BinaryTreeNode*> q; q.push(root); while (!q.empty()) { BinaryTreeNode* p = q.front(); q.pop(); cout<<p->val<<" "; if (p->left) q.push(p->left); if (p->right) q.push(p->right); } }