二叉树的层序遍历

102. Binary Tree Level Order Traversal

广度优先搜索

将每个结点的层号记录下。

cpp 复制代码
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    vector<vector<int>> levelOrder(TreeNode* root) {
        vector<vector<int>> res;
        if(!root) return res;
        res.resize(2000);
        queue<tuple<TreeNode*,int>> Q;
        Q.push(make_tuple(root,0));
        tuple<TreeNode*,int> temp;
        int maxlevel = 0;
        while(!Q.empty()){
            temp = Q.front();
            res[get<1>(temp)].push_back(get<0>(temp)->val);
            if(get<1>(temp) > maxlevel) maxlevel = get<1>(temp);
            Q.pop();
            if(get<0>(temp)->left)
                Q.push(make_tuple(get<0>(temp)->left,get<1>(temp)+1));
            if(get<0>(temp)->right)
                Q.push(make_tuple(get<0>(temp)->right,get<1>(temp)+1));
        }
        res.resize(maxlevel+1);
        return res;
    }
};
相关推荐
fouen35 分钟前
贪心算法理论篇
数据结构·python·算法·贪心算法
祁同伟.1 小时前
【数据结构 · 初阶】- 快速排序
数据结构·算法·排序算法
小森77671 小时前
(八)深度学习---计算机视觉基础
人工智能·python·深度学习·算法·计算机视觉
eachin_z2 小时前
力扣刷题(第三十三天)
算法·leetcode·职场和发展
小雅痞2 小时前
[Java][Leetcode middle] 134. 加油站
java·leetcode
十年一觉尘与土2 小时前
73.矩阵置零
leetcode
全栈凯哥2 小时前
Java详解LeetCode 热题 100(18):LeetCode 73. 矩阵置零(Set Matrix Zeroes)详解
java·算法·leetcode
虾球xz3 小时前
游戏引擎学习第302天:使用精灵边界进行排序
c++·学习·算法·游戏引擎
緈福的街口3 小时前
【leetcode】75.颜色分类
算法·leetcode·职场和发展
XiaoyaoCarter3 小时前
每日leetcode
数据结构·c++·算法·leetcode·职场和发展·kmp算法