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

    1.题目

    给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)(代码在牛客网中执行通过)

    2.思路

    3.代码

    /**
     * struct TreeNode {
     *    int val;
     *    struct TreeNode *left;
     *    struct TreeNode *right;
     * };
     */
    
    class Solution {
    public:
        /**
         * 
         * @param root TreeNode类 
         * @return int整型vector<vector<>>
         */
        vector<vector<int> > levelOrder(TreeNode* root) {
            // 创建一个容器存放所有的要输出的list集合
            vector<vector<int>> result;
            if (!root){
                return result;
            }
            // 用于保存将要被弹出去的节点
            TreeNode* cur = root;
            // 将即将弹出的节点保存到一个新的容器
            vector<int> vtemp;
            // 创建一个队列进行节点的输入输出
            queue<TreeNode*> lis;
            queue<int> lev;
            // 先将根节点存入队列
            lis.push(root);
            lev.push(0);
            while(!lis.empty()){
                int len = lis.size();
                for(int i=0;i<len;i++){
                    // 先保存将弹出去的节点
                    cur = lis.front();
                    vtemp.push_back(cur->val);
                    // 从左到右(队列的先进先出)弹出每一层的节点
                    lis.pop();
                    // 每弹出一个根节点则将他的左右孩子节点,保存到队列中来
                    if(cur->left){
                        lis.push(cur->left);
                    }
                    if(cur->right){
                        lis.push(cur->right);
                    }
                    
                }
                // 将每层的节点集合保存到,总的容器里面
                result.push_back(vtemp);
                // 释放vtemp中的元素
                vtemp.clear();
            }
            return result;
        }
    };
    文中可能存在描述不正确,欢迎园子里的大神们指正补充! 感谢您的阅读,如果觉得对您有帮助,就在右下角点个赞吧,感谢!
  • 相关阅读:
    洛谷 P1410 子序列(DP)
    LibreOJ #539. 「LibreOJ NOIP Round #1」旅游路线(倍增+二分)
    LibreOJ #541. 「LibreOJ NOIP Round #1」七曜圣贤(单调队列)
    浴谷八连测R6题解(收获颇丰.jpg)
    数论的一些小结论
    Fence9
    二模 (2) day1
    二模 (1) day2
    二模 (1) day1
    一些编码时的老错误
  • 原文地址:https://www.cnblogs.com/ioyuki/p/13663230.html
Copyright © 2011-2022 走看看