从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路:队列保存节点,每弹出一个节点,将子女入队列。
vector<int> PrintFromTopToBottom(TreeNode* root) {
//if(root==NULL) return;
vector<int >res;
queue<TreeNode*> Q;
if(root!=NULL)Q.push(root);
//TreeNode* p;
while(!Q.empty())
{
res.push_back(Q.front()->val);
if(Q.front()->left!=NULL) Q.push(Q.front()->left);
if(Q.front()->right!=NULL) Q.push(Q.front()->right);
Q.pop();
}
return res;
}
//if(root==NULL) return;
vector<int >res;
queue<TreeNode*> Q;
if(root!=NULL)Q.push(root);
//TreeNode* p;
while(!Q.empty())
{
res.push_back(Q.front()->val);
if(Q.front()->left!=NULL) Q.push(Q.front()->left);
if(Q.front()->right!=NULL) Q.push(Q.front()->right);
Q.pop();
}
return res;
}