从上往下打印二叉树
题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
解题思路:同层节点从左到右打印,利用queue先进先出
public:
vector<int> PrintFromTopToBottom(TreeNode* root) {
vector<int> sum; //返回的是数组 先写一个数组
if(root == NULL)
return sum;
queue<TreeNode*> q;
q.push(root); //存入整个树
TreeNode* fr;
while(!q.empty())
{
fr = q.front(); //fr 赋值要赋值第一个树,第一个存的树,所以要用front。
sum.push_back(fr->val);
if(fr->left != NULL)
q.push(fr->left);
if(fr->right != NULL)
q.push(fr->right);
q.pop(); //删除第一个树、、最先进来的
}
return sum;
}
};