首页 > 其他分享 >【力扣】二叉树的最大深度

【力扣】二叉树的最大深度

时间:2024-06-08 18:29:22浏览次数:12  
标签:node int 力扣 que 二叉树 深度 root

给定一个二叉树 root ,返回其最大深度。

二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:3

示例 2:

输入:root = [1,null,2]
输出:2

层序遍历求深度

流程

层序遍历是对二叉树每一层进行遍历,我们定义一个深度,在遍历完一层后,深度+1。

代码实现

class Solution {
public:
    int maxDepth(TreeNode* root) {
        if (root == nullptr)
            return 0;
        queue<TreeNode*> que;
        que.push(root);
        int depth = 0;
        while (!que.empty()) {
            int size = que.size();
            while (size--) {
                TreeNode* node = que.front();
                que.pop();
                if (node->left)
                    que.push(node->left);
                if (node->right)
                    que.push(node->right);
            }
            depth++;
        }
        return depth;
    }
};

递归求深度

流程

根节点的高度就是二叉树的最大深度,通过后序求的根节点高度来求的二叉树最大深度。

代码实现

class Solution {
public:
    int maxDepth(TreeNode* root) {
        return getHeight(root);
    }
    int getHeight(TreeNode* node){
        if(node==nullptr) return 0;
        int leftHeight=getHeight(node->left);
        int rightHeight=getHeight(node->right);
        return 1+max(leftHeight,rightHeight);
    }
};

标签:node,int,力扣,que,二叉树,深度,root
From: https://blog.csdn.net/Coldreams/article/details/139549740

相关文章

  • 【力扣】对称二叉树
    给你一个二叉树的根节点root,检查它是否轴对称。示例1:输入:root=[1,2,2,3,4,4,3]输出:true示例2:输入:root=[1,2,2,null,3,null,3]输出:false队列层序遍历流程进行两次同步遍历,分别从根节点的左子树和右子树开始,然后比较每个节点的值代码实现classSolution......
  • 【力扣】翻转二叉树
    给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。示例1:输入:root=[4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例2:输入:root=[2,1,3]输出:[2,3,1]示例3:输入:root=[]输出:[]递归法流程把每一个节点的左右孩子互换,就实现了整体翻转的效果。使用递归......
  • (NICE!!!)LeetCode 3040. 相同分数的最大操作数目 II(深度优先搜索dfs+状态记忆化)
    3040.相同分数的最大操作数目II思路:记忆化搜索。一共最多三种target,我们三次记忆化搜索即可。细节看注释classSolution{public:intn;vector<vector<int>>v;//对区间l~r进行操作,返回符合target的最大操作次数intdfs(intl,intr,inttarget,......
  • 【第四节】C/C++数据结构之树与二叉树
    目录一、基本概念与术语二、树的ADT三、二叉树的定义和术语四、平衡二叉树4.1解释4.2相关经典操作4.3代码展示一、基本概念与术语树(Tree)是由一个或多个结点组成的有限集合T。其中:1有一个特定的结点,称为该树的根(root)结点;2每个树都有且仅有一个特定的,称为......
  • 深度学习 - softmax交叉熵损失
    示例代码importtorchfromtorchimportnn#多分类交叉熵损失,使用nn.CrossEntropyLoss()实现。nn.CrossEntropyLoss()=softmax+损失计算deftest1():#设置真实值:可以是热编码后的结果也可以不进行热编码#y_true=torch.tensor([[0,1,0],[0,0,1]......
  • 深度学习 - 激活函数
    深度学习-激活函数激活函数(ActivationFunction)是神经网络中的关键组件,用于引入非线性,使得网络能够学习和表示复杂的模式和关系。以下是几种常见的激活函数及其详细解释:1.Sigmoid(S型激活函数)作用过程:Sigmoid函数将输入映射到(0,1)之间。公式为:......
  • 二叉树-数据结构
    父节点地址值左子节点地址右子节点地址每一个节点往下面,都是会分成左右两个树的结点度,就是子节点的数量二叉树就是生活中的树的概念树的高度是以最大的数量去数小的往左边放,大的往右边放以根节点为坐标,小于根节点的储存在左边,大的根节点放在右边和根节点相等的数,我们......
  • 力扣每日一题 6/7
    3038.相同分数的最大操作数目I[简单]题目:给你一个整数数组 nums ,如果 nums 至少 包含 2 个元素,你可以执行以下操作:选择 nums 中的前两个元素并将它们删除。一次操作的 分数 是被删除元素的和。在确保 所有操作分数相同 的前提下,请你求出 最多 能进行多少......
  • 【纯干货】深度学习各算法的优缺点和适用场景!建议收藏。(上篇)
    ..纯 干 货.目录前馈神经网络1、梯度下降(GradientDescent)2、随机梯度下降(StochasticGradientDescent,SGD)3、小批量梯度下降(Mini-batchGradientDescent)4、动量(Momentum)5、AdaGrad、RMSprop、Adam等自适应学习率算法卷积神经网络1、LeNet-52、AlexNet3、V......
  • Day17| 110.平衡二叉树、 257. 二叉树的所有路径 、 404.左叶子之和
    110.平衡二叉树(优先掌握递归)再一次涉及到,什么是高度,什么是深度,可以巩固一下。题目链接/文章讲解/视频讲解:https://programmercarl.com/0110.平衡二叉树.html#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):......