很简单的BFS层序遍历,基本操作了。借助队列存储当前层的节点的非空子节点。

class Solution {
public:
    vector<int> PrintFromTopToBottom(TreeNode* root) {
		if (!root) return {};
		queue<TreeNode*> q;
		vector<int> res;
		q.push(root);
		while (!q.empty()) {
			auto now = q.front();
			q.pop();
			res.push_back(now->val);
			if (now->left) q.push(now->left);
			if (now->right) q.push(now->right);
		}
		return res;
    }
};