1.题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
2.基本思路
- 考察的是逐层输出二叉树的节点,本质上是二叉树的层次遍历
2.1出错点
两个地方出错了。
- vector插入元素是vec.push_back()而不是vec.push()
- 队列中的元素是要出队的。Que.pop();
3.代码
vector<int> PrintFromTopToBottom(TreeNode* root) {
vector<int > res;
if(root==NULL)
return res;
//考察的是层次遍历
// 不要小瞧任何一道题
queue<TreeNode*> Que;
TreeNode *p=root;
Que.push(p);
while(Que.size()){
p=Que.front();
Que.pop();
res.push_back(p->val);
if(p->left)
Que.push(p->left);
if(p->right)
Que.push(p->right);
}
return res;
}