zoukankan      html  css  js  c++  java
  • 二叉树层序遍历

    1. 使用到队列   先进先出  看书为准

    C++队列queue模板类的定义在<queue>头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的。C++队列queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。

    C++队列Queue类成员函数如下:

    back()返回最后一个元素
    empty()如果队列空则返回真
    front()返回第一个元素
    pop()删除第一个元素
    push()在末尾加入一个元素
    size()返回队列中元素的个数

    Queue 的基本操作举例如下:

    queue入队,如例:q.push(x);将x 接到队列的末端。
    queue出队,如例:q.pop();弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
    访问queue队首元素,如例:q.front(),即最早被压入队列的元素。
    访问queue队尾元素,如例:q.back(),即最后被压入队列的元素。
    判断queue队列空,如例:q.empty(),当队列空时,返回true。
    访问队列中的元素个数,如例:q.size()。

    /*
    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==nullptr)  
           return res;
          deque <TreeNode* > queueNode;//设置一个队列 存放指针 先进先出
        
          queueNode.push_back(root);
          while(queueNode.size()) //队列为空  代表打印结束  退出
          {
            TreeNode*  pNode=queueNode.front();
            queueNode.pop_front();//前面出
            
    res.push_back(pNode->val); //代替打印
    if(pNode->left)//左子树不为空树 queueNode.push_back(pNode->left); if(pNode->right)//左子树不为空树 queueNode.push_back(pNode->right); } return res; } };
  • 相关阅读:
    springmvcIntercept(拦截器)
    springmvc多文件上传
    websphere8 从安装到部署 测试集群应用程序 安装j2ee程序(非常详细)
    WebSphere集群环境修改IHS端口号的方法
    WAS缓存问题
    websphere部署中文乱码问题
    WAS8.5安装和部署
    MQ7.5以后的权限问题解决
    IBM websphere MQ远程队列的简单配置
    MQ--API总结
  • 原文地址:https://www.cnblogs.com/cgy1012/p/11390403.html
Copyright © 2011-2022 走看看