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

临沂市建设局网站改版html公益网站模板

临沂市建设局网站改版,html公益网站模板,园林景观设计公司有丙级吗,域名备案是永久的吗优质博文#xff1a;IT-BLOG-CN 一、题目 给定一个二叉树root#xff0c;返回其最大深度。 二叉树的最大深度是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1#xff1a; 输入#xff1a;root [3,9,20,null,null,15,7] 输出#xff1a;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】深度优先搜索 如果我们知道了左子树和右子树的最大深度l和r那么该二叉树的最大深度即为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;}QueueTreeNode queue new LinkedListTreeNode();// 先存放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.dnsts.com.cn/news/93478.html

相关文章:

  • 电子商务网站建设及维护管理内蒙古seo
  • 梧州网站优化公司自己做优惠劵网站赚钱吗
  • 自己做网站 需要哪些wordpress镜像搭建
  • 学校网站建设财务报表wordpress 主题 支付宝
  • 企业 网站 客户留言怎么做网站建设含意
  • 推荐12个国外免费自助建站网站如何优化网站关键词排名
  • 佛山高端网站建设报价亚马逊品牌网站建设
  • 模板做网站上传网站开发的风险
  • wordpress整站cdnseo的范畴是什么
  • 企业响应式网站建设微信小程序开发哪个好
  • 做私人彩票网站wordpress超联系
  • 网上智慧团建官网网站建设seo运营规划
  • 网站空间流量查询网站弄论坛形式怎么做
  • 用家里的路由器做网站国外免费ip地址
  • 聚名北京网站优化前景
  • 一个内部网站如何做外网映射线上推广方式有哪些
  • 哈尔滨企业网站制作河北省住房和城市建设厅网站
  • 做 个收废品网站微站和pc网站
  • 三合一网站开发教程网站策划职业规划
  • 海安网站设计合同解除协议
  • 网站备案名称的影响品牌营销策划公司
  • 网页建站实用技术漯河网络推广哪家好
  • 用户权限网站精准客源
  • 青岛定制网站建设推广临沂网站制作案例
  • 新网站怎样做优化织梦网站301跳转怎么做
  • 网站后台管理系统制作软件视频链接生成
  • 宁波自主建站模板黑群晖的做网站文件
  • 网站建设为了什么聊城seo培训
  • wordpress修改站名优质的广州做网站
  • 外贸网站怎么营销建网站买服务器