剑指offer系列——22.从上往下打印二叉树
Q:从上往下打印出二叉树的每个节点,同层节点从左至右打印。
T:简单而言就是层序遍历,使用队列。
A:
vector<int> PrintFromTopToBottom(TreeNode* root) {
queue<TreeNode*> q;
vector<int> array;
if(root == nullptr)
return array;
q.push(root);
while(!q.empty()){
TreeNode* node = q.front();
if(node->left)
q.push(node->left);
if(node->right)
q.push(node->right);
array.push_back(node->val);
q.pop();
}
return array;
}