题解 | #从上往下打印二叉树#
从上往下打印二叉树
http://www.nowcoder.com/practice/7fe2212963db4790b57431d9ed259701
/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
//本题的简单之处在于是从上到下的不分行打印,即结果只需要放进一个一维数组了即可
class Solution {
public:
vector<int> PrintFromTopToBottom(TreeNode* root) {
vector<int> res;
queue<TreeNode*> que;//队列
if(root==NULL)
return res;
que.push(root);//将根节点入队
while(!que.empty()){//当队列非空时
TreeNode* temp=que.front();
que.pop();//出队
res.push_back(temp->val);
if(temp->left){//左孩子不为空时,入队
que.push(temp->left);
}
if(temp->right){
que.push(temp->right);
}
}
return res;
}
};
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
//本题的简单之处在于是从上到下的不分行打印,即结果只需要放进一个一维数组了即可
class Solution {
public:
vector<int> PrintFromTopToBottom(TreeNode* root) {
vector<int> res;
queue<TreeNode*> que;//队列
if(root==NULL)
return res;
que.push(root);//将根节点入队
while(!que.empty()){//当队列非空时
TreeNode* temp=que.front();
que.pop();//出队
res.push_back(temp->val);
if(temp->left){//左孩子不为空时,入队
que.push(temp->left);
}
if(temp->right){
que.push(temp->right);
}
}
return res;
}
};