题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。
显然本题是要用二叉树的层次遍历.
1.将根节点放入队列
2.记录队首元素值
3.判断队首元素的左右子节点是否为空,不为空入队
4.记录队首元素的值,队首元素出队
vector<int> PrintFromTopToBottom(TreeNode* root) {
queue <TreeNode *> temp;
vector<int> res;
int cnt=0;
if(root ==NULL )
return res;
else
{
temp.push(root );
while(!temp.empty())
{
res.push_back (temp.front()->val );
if(temp.front() ->left!=NULL )
temp.push(temp.front()->left );
if(temp.front() ->right !=NULL )
temp.push(temp.front()->right );
temp.pop();
}
}
return res;
}