問題重述:
題目:從上往下打印出二叉樹的每個節點,同一層的節點按照從左到右的順序打印。
思路分析:
這個問題很簡單,即使二叉樹的層次遍歷。
代碼實現:
/*
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> vec;
if(root==NULL)
return vec;
//即二叉樹的層次遍歷
queue<TreeNode*> que;
que.push(root);
while(!que.empty())
{
root = que.front();
vec.push_back(root->val);
que.pop();
if(root->left)
que.push(root->left);
if(root->right)
que.push(root->right);
}
return vec;
}
};