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

LeetCode104_104. 二叉树的最大深度

LeetCode104_104. 二叉树的最大深度

一、描述

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

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

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

示例:
给定二叉树 [3,9,20,null,null,15,7],

	3/ \9  20/  \15   7

返回它的最大深度 3 。

二、题解

方法一:可以直接利用102 或 103 题的结果, 直接给 结果的 res 的size返回就行了。

//方法一:利用前面 102题 或者 103题的结果 直接放回res 的 size 就行了。// 但是效率不高。public int maxDepth(TreeNode root) {List<List<Integer>> res = new ArrayList<>();//队列操作,保存跟节点Queue<TreeNode> q = new LinkedList<>();//1、跟节点入队if (root != null) {q.add(root);}//2、队列不为空,出队while (!q.isEmpty()) {ArrayList<Integer> list = new ArrayList<>();int qSize = q.size();for (int i = 0; i < qSize; i++) {//跟节点TreeNode node = q.poll();list.add(node.val);//左子树if (node.left != null) {q.add(node.left);}//右子树if (node.right != null) {q.add(node.right);}}res.add(list);}return res.size();}

方法二:直接三元运算符 或者 写一些 if else

/*** 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) {return root == null ? 0 : Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;}
}

LeetCode 100. 相同的树
LeetCode 101. 对称二叉树
LeetCode 102. 二叉树的层序遍历
LeetCode 103. 二叉树的锯齿形层序遍历
LeetCode 104. 二叉树的最大深度
LeetCode 105. 从前序与中序遍历序列构造二叉树
LeetCode 107. 二叉树的层序遍历 II
LeetCode 108. 将有序数组转换为二叉搜索树
LeetCode 121. 买卖股票的最佳时机
LeetCode 122. 买卖股票的最佳时机 II
LeetCode 136. 只出现一次的数字



声明:
        题目版权为原作者所有。文章中代码及相关语句为自己根据相应理解编写,文章中出现的相关图片为自己实践中的截图和相关技术对应的图片,若有相关异议,请联系删除。感谢。转载请注明出处,感谢。


By luoyepiaoxue2014

B站: https://space.bilibili.com/1523287361 点击打开链接
微博: http://weibo.com/luoyepiaoxue2014 点击打开链接

http://www.lryc.cn/news/16735.html

相关文章:

  • 浏览器跨域问题
  • 面向对象的三特性
  • 管理者如何给员工沟通绩效
  • 使用Python启动appium
  • 活动回顾丨研发效能度量线下沙龙圆满举办
  • 问题解决篇 | Win11网络连接上了但是无法上网(修改DNS弹出框框“出现问题”,如何通过网络检测确定并修复网络问题)
  • Go语言进阶与依赖管理-学习笔记
  • 【Mybatis源码分析】datasource配置${}表达式时是如何被解析的?
  • 网络基础概述
  • 微搭使用笔记(四) 通过循环展示组件+json配置生成表单及数据获取
  • 做测试5年,靠业务熟悉吃老本,技术短板暴露,30岁被无情辞退...
  • Linux系统安装MySQL8.0版本详细教程【亲测有效】
  • [论文阅读笔记19]SiamMOT: Siamese Multi-Object Tracking
  • unix高级编程-fork和execve
  • Vue3+Ts+Vite开发插件并发布到npm
  • CAN TP层函数介绍
  • Spring架构篇--2.5 远程通信基础Select 源码篇--window--Select.open()
  • WEB静态交互展示【数据mock】
  • (4)C#传智:分支Switch与循环While(第四天)
  • Stable-Baselines 3 部分源代码解读 2 on_policy_algorithm.py
  • 15. Qt中OPenGL的参数传递问题
  • 注意,这本2区SCI期刊最快18天录用,还差一步录用只因犯了这个错
  • Could not find resource jdbc.properties问题的解决
  • 【面试题】==与equals区别、Hashcode作用、hashcode相同equals()也一定为true吗?泛型特点与好处
  • Flex布局中的flex属性
  • SpringBoot + Ant Design Pro Vue实现动态路由和菜单的前后端分离框架
  • robotframework自动化测试环境搭建
  • 尚硅谷《Redis7》(小白篇)
  • 并非从0开始的c++ day6
  • PMP考前冲刺2.22 | 2023新征程,一举拿证