二叉树-二叉树的最大深度(递归 )
题意:
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7],
3
/
9 20
/
15 7
返回它的最大深度 3 。
思路:
首先这里是求二叉树的最大深度,如何求呢?
深度 = 根节点 + 左子树(右子树)最大深度
depth = Max(left , right) + 1
depth就是这个最大深度
1.先判断,如果根节点为空,则返回
2.否则,用递归
左子树深度 = 递归 ,参数用左子树(root.left)
右子树深度 = 递归 ,参数用右子树(root.right)
最后返回 Max(left , right) + 1
Java代码实现:
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
class Solution {public int maxDepth(TreeNode root) {if(root == null) {return 0;} else {int left = maxDepth(root.left);int right = maxDepth(root.right);return Math.max(left, right) + 1;}}
}
二叉树-二叉树的最大深度(递归 )相关推荐
- 二叉树 2.0 -- 非递归遍历
二叉树递归遍历存在的问题 如果我们的二叉树只有左子树,而且树的高度还很深的时候,这个时候递归调用遍历的时候,栈帧空间开辟的较大,很可能造成栈溢出.但是我们一个程序中,为堆分配的空间要比栈大的多,这个时 ...
- 二叉树求深度的递归的详细分析
>数据结构:typedef struct BINODE{TELEMETYPE data;struct BINODE *lchild,*rchild;}BiNode,*BiTtree;>递归 ...
- 二叉树的几种递归和非递归式遍历:
二叉树的几种递归和非递归式遍历: 1 #include <fstream> 2 #include <iostream> 3 4 using namespace std; 5 6 ...
- 二叉树的遍历 (递归和非递归实现)
二叉树的遍历 (递归实现) 用C++实现二叉树的"先根遍历"存储. 用C++实现二叉树的"先根遍历"."中根遍历"."后根遍历&q ...
- 二叉树的遍历(递归,非递归,Morris)
二叉树的遍历 目录 递归遍历 非递归遍历 Morris遍历 1. 递归遍历 递归版遍历只要当前节点不为null,就可以三次回到当前节点. public static void preOrderRecu ...
- linux 递归创建线程,[linux]二叉树的建立及其递归遍历(C语言实现)
#二叉树的特点: 每一个节点最多有两棵子树,所以二叉树中不存在度大于2的节点,注意,是最多有两棵,没有也是可以的 左子树和右子树是有顺序的,次序不能颠倒,这点可以在哈夫曼编码中体现, 顺序不同编码方式 ...
- 数据结构(六)二叉树的遍历(递归非递归方法)
数据结构(六)二叉树的遍历(递归非递归方法) 一.递归方法 1.先序遍历 void PreOrder(BiTree T) {visit(T);PreOrder(T->LChild)PreOrde ...
- 二叉树的遍历(递归、栈、morris莫里斯算法)三种方法
二叉树的前序遍历 递归 class TreeNode{TreeNode left;TreeNode right;int val;public TreeNode(){}public TreeNode(i ...
- 线索二叉树中序非递归线索化以及递归线索化构建和遍历算法
引文 大部分教材给出了 线索二叉树的中序递归线索化以及中序遍历,但是没给出非递归,现在网上大部分非递归算法代码各种条件判断写的比较离谱,所以干脆自己总结了一个清晰的.线索二叉树中序非递归线索化以及递归 ...
- Java 二叉树基础概念(递归迭代)
目录 1. 树型结构 1.1概念 1.2 概念(重要) 2. 二叉树(重点) 2.1 概念 2.2 二叉树的基本形态 2.3 两种特殊的二叉树 2.4 二叉树的性质 a.满二叉树 b.完全二叉树 2. ...
最新文章
- 图像处理工具包ImagXpress的多页TIFF编辑API的使用(1)
- 改善EF代码的方法(下)
- Codeforces732D Exams
- Druid源码分析系列1:dataSource.init()的准备工作
- 实战案例丨使用云连接CC和数据复制服务DRS实现跨区域RDS迁移和数据同步
- php mysql_fetch_field_PHP mysqli_fetch_field() 函数
- dmidecode 硬件查看
- 第八届蓝桥杯第五题取数位
- Java自带工具包StringUtils包含方法
- ai人工智能的数据服务_建立AI系统的规则-来自数据科学家
- 奈奎斯特稳定性判据的详细推导(手把手教,看完就会!)
- wps页眉怎么设置不同页码_WPS论文排版教程二:如何设置不同页码
- tp路由器虚拟服务器架设传奇,单机传奇架设教程2021年完整版
- iOS weak关键字实现原理
- Unity3d Google Play内购尝试客户端坑记
- css 手抓,CSS 像素画 - 手和箭头
- 嵌入式新闻早班车-第14期
- 加速度jsudo:立创电子元器件商城网站功能测评
- 江苏省计算机二级Python备考经验(2020年10月考试)
- mac宽带连接找不到pppoe服务器,Mac如何建立PPPoE网络连接-Mac建立PPPoE网络连接教程 - 河东软件园...