首页 > 其他分享 >111. 二叉树的最小深度

111. 二叉树的最小深度

时间:2023-04-04 18:57:05浏览次数:43  
标签:node right int 最小 que 二叉树 111 root 节点

给定一个二叉树,找出其最小深度。

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

说明:叶子节点是指没有子节点的节点。

class Solution {
public:
    int minDepth(TreeNode* root) {
        if(root == nullptr) return 0;
        if(!root->left && !root->right) return 1;
        que.push(root);
        int res = 1;
        while(!que.empty())
        {
            int size = que.size();
            for(int i = 0; i < size; i++)
            {
                TreeNode* node = que.front();
                que.pop();
                if(!node->left && !node->right) return res;
                if(node->left) que.push(node->left);
                if(node->right) que.push(node->right);
            }
            res++;
        }
        return res - 1;
    }
private:
    queue<TreeNode*> que;
};

标签:node,right,int,最小,que,二叉树,111,root,节点
From: https://www.cnblogs.com/lihaoxiang/p/17287496.html

相关文章

  • 104.二叉树的最大深度
    给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7],classSolution{public:intgetdepth(TreeNode*node){if(node==NULL)return0;......
  • 【LeetCode排序专题02】最小k个数,关于快速排序的讨论
    最小k个数输入整数数组arr,找出其中最小的k个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例1:输入:arr=[3,2,1],k=2输出:[1,2]或者[2,1]示例2:输入:arr=[0,1,2,1],k=1输出:[0]限制:0<=k<=arr.length<=100000<=arr[i......
  • 代码随想录Day20-Leetcode654.最大二叉树,617.合并二叉树,700.二叉搜索树中的搜索,98.验
    654.最大二叉树题目链接:https://leetcode.cn/problems/maximum-binary-tree/基本的模拟思路很快/***Definitionforabinarytreenode.*functionTreeNode(val,left,right){*this.val=(val===undefined?0:val)*this.left=(left===undefined......
  • 树:剑指 Offer 37. 序列化二叉树
    题目描述:请实现两个函数,分别用来序列化和反序列化二叉树。你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列/反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。提示:输入输出格式与LeetCo......
  • 155.最小栈 Java
    155.最小栈设计一个支持push,pop,top操作,并能在常数时间内检索到最小元素的栈。实现MinStack类:MinStack()初始化堆栈对象。voidpush(intval)将元素val推入堆栈。voidpop()删除堆栈顶部的元素。inttop()获取堆栈顶部的元素。intgetMin()获取堆栈中的最小元素......
  • 最小覆盖子串(哈希表、字符串)、两数之和(数组、哈希表)、二叉树的层序遍历 II(树、广
    最小覆盖子串(哈希表、字符串)给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。**注意:**如果s中存在这样的子串,我们保证它是唯一的答案。示例1:输入:s="ADOBECODEBANC",t="ABC"输出:"B......
  • 【数据结构】二叉树先序、中序、后序及层次遍历(C语言版)
    一、图示展示1.先序遍历先序遍历可以想象为,一个小人从一棵二叉树根节点为起点,沿着二叉树外沿,逆时针走一圈回到根节点,路上遇到的元素顺序,就是先序遍历的结果先序遍历结果为:ABDHIEJCFKG动画演示:记住小人沿着外围跑一圈(直到跑回根节点),多看几次动图便能理解2.......
  • 二叉树
    树的结构一棵二叉树又三个部分组成:根节点左子树右子树我们将树的结构定义如下:classTreeNode{public: intval; TreeNode*left; TreeNode*right; intheight; TreeNode(intx):val(x),left(nullptr),right(nullptr),height(1){}; TreeNode():TreeNode(0){};};......
  • 2096. 从二叉树一个节点到另一个节点每一步的方向
    题目描述给了一个二叉树,树上所有节点的值不同再给了两个点的值表示起点和终点,问从起点到终点的最短路的方向?f1dfs预处理+最近公共祖先基本分析没有给出起点和终点是哪个点,怎么拿到?一次从root的dfss到e的最短路径是哪一条?从公共祖先分别下来的怎么从s和e求到公共祖先的pat......
  • 树:剑指 Offer 34. 二叉树中和为某一值的路径
    题目描述:给你二叉树的根节点root和一个整数目标和targetSum,找出所有从根节点到叶子节点路径总和等于给定目标和的路径。叶子节点是指没有子节点的节点。 示例1: 输入:root=[5,4,8,11,null,13,4,7,2,null,null,5,1],targetSum=22输出:[[5,4,11,2],[5,8,4,5]]......