- 时间限制:1秒空间限制:32768K
- 通过比例:29.17%
- 最佳记录:0ms|8552K(来自 牛客688826号)
题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
解答思路:层序遍历
/*
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> ret;
if(root==NULL) return ret;
std::queue<TreeNode*> levelOrder;
levelOrder.push(root);
TreeNode* pCur=levelOrder.front();
ret.push_back(pCur->val);
while(pCur){
if(pCur->left) levelOrder.push(pCur->left);
if(pCur->right) levelOrder.push(pCur->right);
levelOrder.pop();
if(!levelOrder.empty()){
pCur=levelOrder.front();
ret.push_back(pCur->val);
}
else break;
}
return ret;
}
};