题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
解法:
关键点是当前层打印输出之后,下一层节点我应该要保存,也就是边打印边输出的时候也要边保存下一层节点,这样的数据结构队列最适合!具体的代码如下
vector<int> PrintFromTopToBottom(TreeNode* root) {
if(root==NULL)
return vector<int>();
queue<TreeNode*> temp;
vector<int> ordervalue;
temp.push(root);
while(!temp.empty())
{
TreeNode* node=temp.front();
ordervalue.push_back(node->val);
temp.pop();
if(node->left)
temp.push(node->left);
if(node->right)
temp.push(node->right);
}
return ordervalue;
}