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

二叉树的深度、高度

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

二叉树的高度是指从该节点到叶子结点的最长简单路径边的条数。

一、最大深度

104. 二叉树的最大深度 - 力扣(LeetCode)

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

//递归法
/*** 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 getdepth(root);}public int getdepth(TreeNode root){if(root==null)return 0;int rdepth=getdepth(root.right);int ldepth=getdepth(root.left);int depth=Math.max(rdepth,ldepth)+1;return depth;}
}

二、最小深度

111. 二叉树的最小深度 - 力扣(LeetCode)

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

//递归法
/*** 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 minDepth(TreeNode root) {return getdepth(root);}public int getdepth(TreeNode root){if(root==null)return 0;int rdepth=getdepth(root.right);int ldepth=getdepth(root.left);if(root.left==null&&root.right!=null)return rdepth+1;//左为空,右不为空,说明此时不是最近叶子结点if(root.left!=null&&root.right==null)return ldepth+1;//左不为空,右为空,说明此时不是最近叶子结点int depth=Math.min(rdepth,ldepth)+1;return depth;}
}

三、平衡二叉树

110. 平衡二叉树 - 力扣(LeetCode)

定义:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过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 boolean isBalanced(TreeNode root) {return getHeight(root)==-1?false:true;}public int getHeight(TreeNode root){if(root==null)return 0;int rheight=getHeight(root.right);if(rheight==-1)return -1;int lheight=getHeight(root.left);if(lheight==-1)return -1;return Math.abs(rheight-lheight)>1?-1:1+Math.max(rheight,lheight);}
}

http://www.xdnf.cn/news/5115.html

相关文章:

  • 图像画质算法记录(前言)
  • P11369 [Ynoi2024] 弥留之国的爱丽丝(操作分块,DAG可达性trick)
  • MySQL高可用方案全攻略:选型指南与AI运维实践
  • PIC18F45K80 ECAN模块使用
  • 升级element-ui步骤
  • 增强学习(Reinforcement Learning)简介
  • R1快开门式压力容器操作考试的实操技能考试有哪些注意事项?
  • MySQL基础关键_013_常用 DBA 命令
  • Ansible内置模块之package
  • 技术分享 | 如何在2k0300(LoongArch架构)处理器上跑通qt开发流程
  • python格式化小数加不加f的区别
  • 75.颜色分类
  • 第一节:JavaScript 简介与开发环境搭建
  • python切片的原理基础
  • houdini快速渲染的优化技巧
  • C语言| 数组名作为函数参数
  • 【Linux】权限
  • PLUS-InVEST 模型与 AI 协同:推动生态研究创新发展
  • pcb样板打样厂家哪家好?
  • O2O上门服务如何颠覆传统足浴行业?真实案例分析
  • Android 移动应用开发:页面跳转与数据传递功能
  • 电动汽车充电设施可调能力聚合评估与预测
  • 开发者日常中的网络调试实战
  • 【linux常用命令】处理失效链接
  • 大白话解释CPU、NPU和GPU
  • Unity 点击按钮,打开 Windows 文件选择框,并加载图片
  • 基于nodejs + Koa +Nuxt3的订单系统项目实战
  • 应急响应靶机训练-挖矿事件:知攻善防实验室
  • element-ui分页的使用及修改样式
  • RabbitMQ事务机制