从上往下打印二叉树
从上往下打印二叉树
http://www.nowcoder.com/questionTerminal/7fe2212963db4790b57431d9ed259701
方法:层序遍历
利用队列,将节点按层从左到右入队,之后打印即可;
vector<int> PrintFromTopToBottom(TreeNode* root) {
if(!root) return vector<int>();
vector<int> ret;
queue<TreeNode*> q;
q.push(root);
while(!q.empty()){
TreeNode* node = q.front();
q.pop();
ret.push_back(node->val);
if(node->left) {
q.push(node->left);
}
if(node->right){
q.push(node->right);
}
}
return ret;
}