面试题23从上到下打印二叉树+queue操作
//本题思路就是层次遍历二叉树,使用一个队列来模拟过程 /* 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> results; if(root==nullptr) return results; queue<TreeNode*> tmpQue; tmpQue.push(root); while(!tmpQue.empty()){ TreeNode* p = tmpQue.front(); tmpQue.pop(); results.push_back(p->val); if(p->left!=nullptr) tmpQue.push(p->left); if(p->right!=nullptr) tmpQue.push(p->right); } return results; } };
C++ stl队列Queue用法介绍:删除,插入等操作代码举例
queue 的基本操作举例如下:
queue入队,如例:q.push(x); 将x 接到队列的末端。
queue出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
访问queue队首元素,如例:q.front(),即最早被压入队列的元素。
访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。
判断queue队列空,如例:q.empty(),当队列空时,返回true。
访问队列中的元素个数,如例:q.size()
queue的初始化和stack的初始化都不能直接初始化,需要使用push操作进行初始化。