当前位置: 首页 > news >正文

钦州网站制作在线crm软件

钦州网站制作,在线crm软件,建设网站要注意什么,如何创建网站页面优质博文:IT-BLOG-CN 一、题目 给定一个二叉树root,返回其最大深度。 二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3 示例 2&#xff1a…

在这里插入图片描述

优质博文:IT-BLOG-CN

一、题目

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

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

示例 1:

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

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

树中节点的数量在[0, 104]区间内。
-100 <= Node.val <= 100

二、代码

【1】深度优先搜索: 如果我们知道了左子树和右子树的最大深度lr,那么该二叉树的最大深度即为max(l,r)+1。而左子树和右子树的最大深度又可以以同样的方式进行计算。因此我们可以用「深度优先搜索」的方法来计算二叉树的最大深度。具体而言,在计算当前二叉树的最大深度时,可以先递归计算出其左子树和右子树的最大深度,然后在O(1)时间内计算出当前二叉树的最大深度。递归在访问到空节点时退出。

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int maxDepth(TreeNode root) {// 递归计算数的深度,确定递归的推出条件if (root == null) {return 0;} else {int leftHight = maxDepth(root.left);int rightHight = maxDepth(root.right);return Math.max(leftHight,rightHight) + 1;}}
}

复杂度分析:
1、时间复杂度: O(n)其中n为二叉树节点的个数。每个节点在递归中只被遍历一次。
2、空间复杂度: O(height)其中height表示二叉树的高度。递归函数需要栈空间,而栈空间取决于递归的深度,因此空间复杂度等价于二叉树的高度。

【2】广度优先搜索: 我们也可以用「广度优先搜索」的方法来解决这道题目,但我们需要对其进行一些修改,此时我们广度优先搜索的队列里存放的是当前层的所有节点。每次拓展下一层的时候,不同于广度优先搜索的每次只从队列里拿出一个节点,我们需要将队列里的所有节点都拿出来进行拓展,这样能保证每次拓展完的时候队列里存放的是当前层的所有节点,即我们是一层一层地进行拓展,最后我们用一个变量ans来维护拓展的次数,该二叉树的最大深度即为ans

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int maxDepth(TreeNode root) {if (root == null) {return 0;}Queue<TreeNode> queue = new LinkedList<TreeNode>();// 先存放root节点queue.offer(root);// 总长度int maxLen = 0;// 开启循环,并确定退出循环的条件while (!queue.isEmpty()) {// 获取当前队列的长度,确定该层遍历的次数int size = queue.size();// 我们需要遍历当前层的所有 treeNode// 确定循环条件,并确定退出条件while (size > 0) {TreeNode treeNode = queue.poll();if (treeNode.left != null) {// 注意:添加的时左节点,而不是当前节点queue.offer(treeNode.left);}if (treeNode.right != null) {queue.offer(treeNode.right);}--size;}++maxLen;}return maxLen;}
}

复杂度分析:
1、时间复杂度: O(n)其中n为二叉树的节点个数。与方法一同样的分析,每个节点只会被访问一次。
2、空间复杂度: 此方法空间的消耗取决于队列存储的元素数量,其在最坏情况下会达到O(n)

http://www.dt0577.cn/news/21445.html

相关文章:

  • 互联网的推广方式有哪些优化设计五年级下册数学答案
  • 怎么评价一个网站设计做的好坏免费友链互换
  • 做网站初始配置中国站长之家域名查询
  • 怎么做网站的三级目录百度问答我要提问
  • 上海大型网站制作企业文化内容范本
  • 做网站现在什么尺寸合适代理公司注册
  • 自己域名做网站seo全网优化指南
  • oa 开发厦门seo公司
  • 有趣的网站之家西安优化外
  • 网站程序源代码网站友情链接连接
  • 做网站开发学什么今日头条新闻最全新消息
  • 手机应用开发平台搜索引擎优化包括哪些
  • 手机网站免费优化指数运算法则
  • 中国网站建设平台2023第二波疫情已经到来了
  • wordpress支持php电脑优化是什么意思
  • 湘潭市 网站建设女教师遭网课入侵直播
  • 中山网站制作服务济南百度开户电话
  • 天津网站建设基本流程图东莞市网络营销公司
  • 昆明网站建设云集创手机端搜索引擎排名
  • 企业网站欣赏网页制作的软件
  • UE4做购物网站企业推广网络营销外包服务
  • 网站维护协议网站推广策略
  • 网站建设合同的性质宁波seo优化外包公司
  • 企业网站备案要求广州seo实战培训
  • 长安仿做网站网络营销推广方式包括哪几种
  • 网站建设需要入无形资产吗网站综合排名信息查询
  • 一个人做网站现实吗优速网站建设优化seo
  • 北京网站建设联系电话百度sem运营
  • 生日礼物自己做网站个人介绍网页制作
  • 想做个网站 怎么做成人营销管理培训班