分析: 从根节点开始,先把根节点放入队列中,然后在从队列头取出元素进行打印 。如果该根节点存在左右子节点,就将左右子节点加入到队列的末尾。重复上述操作直至队列为空
class Solution {
public:
vector<int> PrintFromTopToBottom(TreeNode* root) {
vector<int> result;
if(!root) return result;
queue <TreeNode*> q;
q.push(root);
while(q.size())
{
auto t = q.front(); //auto 根据变量的初始值类型为其自动选择匹配的类型,先存下根节点
q.pop();
result.push_back(t->val);
if (t->left) q.push(t->left);
if (t->right) q.push(t->right);
}
return result;
}
};