zoukankan      html  css  js  c++  java
  • 面试题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操作进行初始化。

  • 相关阅读:
    WLC-Download 3-party CA to WLC
    WLC-生成CSR操作
    MSE-初始化MSE
    Nexus-产品认识
    Nexus-配置VDC
    Nexus-VDC(Virtual Device Context)
    Nexus-FEX基础配置
    Nexus-配置vPC 实验三
    Nexus-配置vPC 实验二
    Nexus-配置vPC 实验一
  • 原文地址:https://www.cnblogs.com/dingxiaoqiang/p/6838757.html
Copyright © 2011-2022 走看看