题目
从上到下打印二叉树:从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
例如: 给定二叉树: [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回:
[3,9,20,15,7]
思路
从上-往下打印二叉树—相当于层序遍历
从上往下,从左往右
。我们知道都是按顺序的,顺序结构,可以借助队列来帮助实现
- 先把根节点放入队列
- 队列不为空,取出队列中的一个节点,左孩子节点(不为空)入队,右孩子节点(不为空)入队
- 一次重复第 2 步操作,直到队列为空
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <stack>
#include <list>
using namespace std;
struct TreeNode
{
int data;
TreeNode * left;
TreeNode * right;
TreeNode