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

2025年- H46-Lc154 --543. 二叉树的直径(深度、递归、深搜)--Java版

1.题目描述

2.思路

在这里插入图片描述
在这里插入图片描述

径定义为“路径经过的节点数 - 1”,而递归中我们实际是在统计“边数”。
left + right 就已经是边数,无需再减 1。
Depth() 返回的是深度(从当前节点到底部的边数),而不是节点数。如果你返回节点数,就要额外处理 -1。
在这里插入图片描述

3.代码实现

 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;}}public class H543 {int diameter;//定义一个类的成员变量,也就是全局变量。这个值可以实时更新迭代。用来存储当前遍历到的最大直径值。public int diameterOfBinaryTree(TreeNode root) {diameter=0;Depth(root);//传入二叉树的节点值,计算每个节点的深度,同时更新最大直径return diameter;}private int Depth(TreeNode root){if(root==null)return 0;int left=Depth(root.left);//递归计算当前节点左子树和右子树的最大深度。int right=Depth(root.right);//两者之和就是经过该节点的路径长度。diameter=Math.max(diameter,left+right);//更新全局最大直径值:当前最大值和 left + right 中取最大值。径定义为“路径经过的节点数 - 1”,而递归中我们实际是在统计“边数”。return 1+Math.max(left,right);//当前节点的深度 = 左右子树最大深度 + 1(算上当前节点)。返回给上一层节点使用。
//left + right 就已经是边数,无需再减 1。}public static void main(String[] args){H543 test=new H543();TreeNode node3=new TreeNode(3,null,null);TreeNode node2=new TreeNode(2,null,null);TreeNode head =new TreeNode(1,node2,node3);int res=test.diameterOfBinaryTree(head);System.out.print(res);}}
http://www.xdnf.cn/news/643195.html

相关文章:

  • 华为OD机试真题—— 矩阵匹配(2025B卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • MySQL的查询进阶
  • 学习STC51单片机15(芯片为STC89C52RCRC)
  • (九)PMSM驱动控制学习---高阶滑膜观测器
  • 网络 :序列和反序列化
  • <uniapp><threejs>在uniapp中,怎么使用threejs来显示3D图形?
  • 电子电路:电压就是电场么?二者有什么关系?
  • python打卡day36
  • Hutool使用
  • 针对面试- RabbitMQ消息队列篇
  • 【linux】umask权限掩码
  • Java类和对象知识点
  • 从lateral说起
  • Ansible常用Ad-Hoc 命令
  • react问一问
  • Axure 基本用法学习笔记
  • 修复ubuntu server笔记本合盖导致的无线网卡故障
  • 触发进程守护服务的判断因数
  • 《帝国时代1》游戏秘籍
  • 【2025】基于Springboot + vue + 协同过滤算法实现的旅游推荐系统
  • 云手机应该怎么选?和传统手机有什么区别?哪些云手机支持安卓12系统?
  • 第五十节:增强现实基础-特征点检测与匹配
  • springboot中过滤器配置使用
  • 基于RK3576+FPGA+CODESYS工控板的运动控制模块方案
  • 字节跳动GPU Scale-up互联技术白皮书
  • 使用CRTP实现单例
  • [yolov11改进系列]基于yolov11引入双层路由注意力机制Biformer解决小目标遮挡等问题python源码+训练源码
  • 优秀技术文档的构建与优化之道
  • Typescript学习教程,从入门到精通,TypeScript 进阶语法知识点及案例代码详解(13)
  • QStandardItemModel的函数和信号介绍