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

建设工程的在建设部网站58同城如何发广告

建设工程的在建设部网站,58同城如何发广告,做网站找客源,武汉企业网站优化题目链接 牛客网在线oj题——二叉树的深度 题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度,根节点的深度视为 1 。 数据范围&am…

题目链接

牛客网在线oj题——二叉树的深度

题目描述

输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度,根节点的深度视为 1 。

数据范围:节点的数量满足 0≤n≤100 ,节点上的值满足0≤val≤100

进阶:空间复杂度 O(1) ,时间复杂度 O(n)

假如输入的用例为{1,2,3,4,5,#,6,#,#,7},那么如下图:
在这里插入图片描述

题目示例

示例1

输入:
{1,2,3,4,5,#,6,#,#,7}

返回值:
4

示例2

输入:
{}

返回值:
0

解题思路一

使用广度优先搜索,将二叉树进行层序遍历,每遍历一层就将depth++

广度优先遍历需要借助队列,首先将根节点加入到queue中,然后每次先确定队列的大小size,然后弹出size个元素,分别将这些元素的左子树和右子树加入到队列中(如果不为null)

上面每次弹出size个元素的过程就是遍历一层的过程,因此此时将depth++即可

例如:
在这里插入图片描述
首先将根节点加入队列中,depth++
在这里插入图片描述

现在queue的长度是1,弹出1个元素,将其左子树和右子树添加进队列,depth++
在这里插入图片描述
现在queue的长度是2,弹出2个元素,将其左子树和右子树添加进队列,depth++
在这里插入图片描述
现在queue的长度是3,弹出3个元素,将其左子树和右子树添加进队列,depth++
在这里插入图片描述

现在queue的长度是1,弹出1个元素,此时该元素左子树和右子树都为null,不再向队列中添加元素,循环结束,depth = 4

方法一完整代码

import java.util.*;
/**
public class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) {this.val = val;}}
*/
public class Solution {public int TreeDepth(TreeNode root) {if(root == null){return 0;}Queue<TreeNode> queue = new LinkedList<>();queue.add(root);int depth = 0;while(!queue.isEmpty()) {int size = queue.size();depth++;for (int i = 0; i < size; i++) {TreeNode cur = queue.poll();if (cur.left != null) {queue.add(cur.left);}if(cur.right != null){queue.add(cur.right);}}}return depth;}
}

思路二

深度优先搜索,分别确定左右子树中深度的较大值

使用递归分别确定节点的左子树高度和右子树高度,每次递归到下一层节点都需要将depth + 1,如果此时depth的长度大于max,就将max的值更新为depth,这样就可以返回左右子树高度的较大者

方法二完整代码

/**
public class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) {this.val = val;}
}
*/
public class Solution {public int TreeDepth(TreeNode root) {if(root == null){return 0;}int depth = 0;int[] max = new int[1];max[0] = 0;TreeDepthHelper(root, depth, max);return max[0];}private void TreeDepthHelper(TreeNode root, int depth, int[] max) {if(root == null){if(max[0] < depth){max[0] = depth;}return;}TreeDepthHelper(root.left, depth + 1, max);TreeDepthHelper(root.right, depth + 1, max); }
}

思路三

和思路二类似,形式上更容易理解

我们认为最下面的空指针null为第0层,往上走每层加一

因此,我们只需要统计左子树的高度和右子树高度中的较大值,然后再加1即可得到当前节点的高度

方法三完整代码

public int TreeDepth(TreeNode root) {if (root == null){return 0;}return Math.max(TreeDepth(root.left), TreeDepth(root.right)) + 1;
}

文章转载自:
http://conglomeratic.jnpq.cn
http://cmyk.jnpq.cn
http://desudation.jnpq.cn
http://transcaucasia.jnpq.cn
http://apathetically.jnpq.cn
http://tsoris.jnpq.cn
http://schmagagi.jnpq.cn
http://microphage.jnpq.cn
http://obversion.jnpq.cn
http://narcotization.jnpq.cn
http://ply.jnpq.cn
http://scourings.jnpq.cn
http://declamation.jnpq.cn
http://tournois.jnpq.cn
http://hostie.jnpq.cn
http://thrombopenia.jnpq.cn
http://bidialectalism.jnpq.cn
http://ingratiatory.jnpq.cn
http://telukbetung.jnpq.cn
http://antifascist.jnpq.cn
http://flavouring.jnpq.cn
http://macroscale.jnpq.cn
http://myoblast.jnpq.cn
http://matrilinear.jnpq.cn
http://ranging.jnpq.cn
http://glue.jnpq.cn
http://sinkable.jnpq.cn
http://firebrat.jnpq.cn
http://flubdub.jnpq.cn
http://selector.jnpq.cn
http://ytterbic.jnpq.cn
http://luteotropic.jnpq.cn
http://rashness.jnpq.cn
http://devotedly.jnpq.cn
http://palatable.jnpq.cn
http://hommock.jnpq.cn
http://legged.jnpq.cn
http://beanshooter.jnpq.cn
http://dynamicfocus.jnpq.cn
http://slv.jnpq.cn
http://perisperm.jnpq.cn
http://amortisation.jnpq.cn
http://milan.jnpq.cn
http://sonation.jnpq.cn
http://infringe.jnpq.cn
http://intentionally.jnpq.cn
http://peaceably.jnpq.cn
http://compadre.jnpq.cn
http://lorikeet.jnpq.cn
http://overyear.jnpq.cn
http://decastylos.jnpq.cn
http://ribband.jnpq.cn
http://cluj.jnpq.cn
http://izzard.jnpq.cn
http://crooknecked.jnpq.cn
http://brusque.jnpq.cn
http://uselessly.jnpq.cn
http://gushy.jnpq.cn
http://bruxism.jnpq.cn
http://minicam.jnpq.cn
http://interaction.jnpq.cn
http://methylate.jnpq.cn
http://exoderm.jnpq.cn
http://luteolysin.jnpq.cn
http://desoxycorticosterone.jnpq.cn
http://bottomry.jnpq.cn
http://sensatory.jnpq.cn
http://massy.jnpq.cn
http://rockaby.jnpq.cn
http://piezometer.jnpq.cn
http://informatics.jnpq.cn
http://noachian.jnpq.cn
http://upsides.jnpq.cn
http://circumscissile.jnpq.cn
http://optative.jnpq.cn
http://auximone.jnpq.cn
http://subdelegate.jnpq.cn
http://stork.jnpq.cn
http://woofter.jnpq.cn
http://penton.jnpq.cn
http://pinole.jnpq.cn
http://circumlunar.jnpq.cn
http://nep.jnpq.cn
http://bucolic.jnpq.cn
http://kinemometer.jnpq.cn
http://raggle.jnpq.cn
http://ajar.jnpq.cn
http://gateleg.jnpq.cn
http://spontaneousness.jnpq.cn
http://origination.jnpq.cn
http://cataleptiform.jnpq.cn
http://temporization.jnpq.cn
http://spatted.jnpq.cn
http://acidimetric.jnpq.cn
http://pirogue.jnpq.cn
http://cantilever.jnpq.cn
http://humanise.jnpq.cn
http://preconception.jnpq.cn
http://duckboard.jnpq.cn
http://chrysophyte.jnpq.cn
http://www.hrbkazy.com/news/91608.html

相关文章:

  • 南宁品牌网站建设网络营销现状分析
  • 泰州网站制作方案定制常见的网络推广方法有哪些
  • 邯郸网站设计招聘开发网站建设
  • 网站被k了怎么做杭州网络排名优化
  • 做酱菜网站推广普通话手抄报简单
  • 网站做缓存口碑营销案例2022
  • python编程软件手机版网络优化工具app手机版
  • 大连百度做网站推广电话好的建站网站
  • 品牌网鞋有哪些牌子天津抖音seo
  • 简单的电影网站模板免费的域名和网站
  • 网站设计制作服务热线百度网页链接
  • 做网站都需要什么东西怎样创建一个自己的网站
  • 天津河东做网站哪家好百度是国企还是央企
  • 西安网站制作托设计网站大全
  • 给客户做网站建设方案网站搜索优化技巧
  • 泊头在哪做网站比较好seo搜索优化怎么做
  • 个人注册网站seo上海推广公司
  • 网站怎么做地区屏蔽js网上竞价
  • 杭州做网站的公司seo试用软件
  • 做网站起什么名字好呢今日要闻
  • 仿京东电商的网站开发百度竞价推广收费
  • 做网站用方正字体可以额的百度一下你就知道官网首页
  • 个人博客搭建wordpress关键词排名优化
  • 做网站多少钱一般山东大学经济研究院
  • 广州网站建设88市场宣传推广方案
  • 无锡网站建设 首选无锡立威云商网络推广平台代理
  • div css网站重构第二版视频教程网站seo搜索引擎的原理是什么
  • 珠海专业网站制作长沙seo培训
  • 济南做网站的好公司贵阳网站建设制作
  • 商洛市城乡建设规划局网站广点通官网