- 题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- idea:使用队列来层次遍历二叉树。
- code
/*
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;
if (!root) return res;
queue<TreeNode*> ctr;
TreeNode *p = root;
ctr.push(p);
while(!ctr.empty()){
p = ctr.front();
ctr.pop();
res.push_back(p->val);
if (p->left) ctr.push(p->left); // 左子树
if (p->right) ctr.push(p->right); // 右子树
}
return res;
}
};