剑指offer:从上往下打印二叉树
class Solution{
public:
vector<int> PrintFromTopToBottom(TreeNode* root){
if(root == nullptr) return vector<int>();
queue <TreeNode*> q;
q.push(root);
vector<int> result;
TreeNode* node =nullptr;
while(!q.empty()){
node = q.front();
if(node->left) q.push(node->left);
if(node->right) q.push(node->right);
result.push_back(node->val);
q.pop();
}
return result;
}
};
先判断二叉树为空否,借助队列q,把二叉树的根节点压入队列,定义队列的指针node,在定义个最后输出的数组。当队列不为空,node指针往前走,如果它有左子树,把值放入队列,右子树也同理,q.pop()出队列,因为先进先出,然后把node指针指的值全放入最后的result中,这时result里的值就是顺序的二叉树排序。
#剑指offer#
阿里云工作强度 694人发布
