每日一练:二叉树的直径

server/2024/9/24 8:52:09/

543. 二叉树的直径 - 力扣(LeetCode)

一、题目要求

给你一棵二叉树的根节点,返回该树的 直径 。

二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。

两节点之间路径的 长度 由它们之间边数表示。

示例 1:

输入:root = [1,2,3,4,5]
输出:3
解释:3 ,取路径 [4,2,1,3] 或 [5,2,1,3] 的长度。

示例 2:

输入:root = [1,2]
输出:1

提示:

  • 树中节点数目在范围 [1, 104] 内
  • -100 <= Node.val <= 100

二、解法1-递归 O(N)

        因为题目说到最长路径可能不经过根节点,所以递归每个节点的左右子树,得到它们的高度,如果加起来大于ret,就更新ret,然后返回上一个节点的高度。

class Solution {int height(TreeNode* root){if(root == nullptr)return 0;int leftHeight = height(root->left);int rightHeight = height(root->right);if(leftHeight+rightHeight > ret)ret = leftHeight+rightHeight;return max(leftHeight,rightHeight)+1;}
public:int diameterOfBinaryTree(TreeNode* root) {height(root);return ret;}
private:int ret = 0;
};


http://www.ppmy.cn/server/121268.html

相关文章

WinCC中归档数据片段的时间和尺寸设置

1&#xff0e;归档数据片段介绍工控人加入PLC工业自动化精英社群 1.1 概述 WinCC V6.2 开始的后台数据库采用了MS SQL Server 2005 &#xff0c;所以归档方式与V5 有所不同&#xff0c;它的运行数据存放在数据片段&#xff08;segment&#xff09;当中&#xff0c;工程师可以…

基于单片机的智能校园照明系统

由于校园用电量较大&#xff0c;本设计可以根据实际环境情况的改变&#xff0c;实现实时照明的控制。本设计以单片机芯片为控制芯片&#xff0c;热释电传感器采集教室中学生出入的信息&#xff0c;并把信息传递给单片机芯片&#xff0c;单片机芯片根据传感器传递过来的信息来控…

列表、数组排序总结:Collections.sort()、list.sort()、list.stream().sorted()、Arrays.sort()

列表类型 一.Collections.sort() Collections.sort()用于List类型的排序&#xff0c;其提供了两个重载方法&#xff1a; 1.sort(List<T> list) &#xff08;1&#xff09;List指定泛型时只能指定引用数据类型&#xff0c;也就是说无法用于基本数据类型的排序。 &am…

二、电脑入门2之常用dos命令

打开dos命令窗口 win R 常用dos命令 dir&#xff1a; 列出当前目录下的所有文件以及目录 cls &#xff1a;清理屏幕 exit&#xff1a; 关闭dos命令窗口 c:(盘字母后带冒号) 切换盘符 del&#xff1a; 删除文件 ipconfig &#xff1a; 查看IP信息 ipconfig/all &#xf…

微前端中的路由加载流程

1. 初始化基座应用 基座应用&#xff1a;基座应用是微前端架构中的主应用&#xff0c;负责管理和协调各个子应用的加载和卸载。 初始化&#xff1a;基座应用在启动时会初始化路由配置&#xff0c;注册各个子应用的路由。 2. 注册子应用 子应用需要向基座应用注册自己的路由和…

新建flask项目,配置入口文件,启动项目

pycharm新建flask项目时&#xff0c;会提供一个创建flask项目的导向&#xff0c;自动设置虚拟环境&#xff0c;并且安装flask及其依赖而vscode新建flask项目时&#xff0c;需要手动设置虚拟环境并安装flask&#xff0c;需要在终端使用pip install flask命令来安装flask及其依赖…

Apache Cordova/PhoneGap

Apache Cordova和PhoneGap是两个在移动应用开发领域备受关注的开源框架&#xff0c;它们有着紧密的联系和显著的区别。本文将从起源与发展、技术特点、功能与应用、社区与文档资源、性能与限制以及未来发展趋势等多个方面&#xff0c;对Apache Cordova和PhoneGap进行详细探讨。…

spring中ApplicationContext的用法和作用举例

在Spring框架中&#xff0c;ApplicationContext是Spring IoC&#xff08;Inversion of Control&#xff0c;控制反转&#xff09;容器的核心接口之一。它负责管理和配置应用程序中的Bean&#xff0c;并提供了丰富的功能&#xff0c;如依赖注入、事件发布、国际化等。下面将详细…