543. 二叉树的直径

题目描述

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

二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 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

解答

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:int diameter = 0;int diameterOfBinaryTree(TreeNode* root) {// 左子树高 + 右子树高 = 直径// 直径在求树高过程中计算depth(root);return diameter;}int depth(TreeNode *root){if(root == nullptr) return 0;int left = depth(root->left);int right = depth(root->right);// 最长路径也可能不经过根节点diameter = max(diameter, left + right);// 作为树高的计算return max(left, right) + 1;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/95635.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT基础使用总结

文章目录 一、ChatGPT基础概念大型语言模型LLMs---一种能够以类似人类语言的方式“说话”的软件ChatGPT定义---OpenAI 研发的一款聊天机器人程序&#xff08;2022年GPT-3.5&#xff0c;属于大型语言模型&#xff09;ChatGPT4.0---OpenAI推出了GPT系列的最新模型ChatGPT典型使用…

FusionCharts Suite XT v3.21 Crack

FusionCharts Suite XT v3.21 在圆环图和饼图上将图例和数据值显示为百分比或绝对值。 2023 年 10 月 4 日 - 15:15新版本 特征 通过允许用户将图例和数据值显示为百分比或绝对值&#xff0c;改进了圆环图和饼图。 添加了一个新功能&#xff0c;可以删除任何可能导致代码错误的…

电脑数据恢复怎么操作?电脑数据恢复难点是什么

随着电脑在我们日常生活中的普及&#xff0c;数据的重要性不言而喻。然而&#xff0c;在某些情况下&#xff0c;我们可能会不小心删除或因其他原因导致丢失了重要的电脑数据&#xff0c;这时候就需要进行数据恢复操作。下面我们一起来了解下电脑数据恢复的操作方法&#xff0c;…

买卖股票的最佳时机含冷冻期

问题&#xff1a; 给定一个整数数组prices&#xff0c;其中第 prices[i] 表示第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;: 卖出股票后&#xff0c;你无法…

多媒体应用设计师

1.多媒体技术基础 1.1.媒体与技术 1.1.媒体 维基百科&#xff1a;传播信息载体 国际电信联盟&#xff08;ITU-T&#xff09;&#xff1a;感知、表示、存储和传输的手段和方法。 两层含义&#xff1a;存储信息的实体&#xff0c;媒质。传递信息载体&#xff0c;媒介。 1.2.国…

游戏设计模式专栏(五):三步学会原型模式

引言 大家好&#xff0c;我是亿元程序员&#xff0c;一位有着8年游戏行业经验的主程。 本系列是《和8年游戏主程一起学习设计模式》&#xff0c;让糟糕的代码在潜移默化中升华&#xff0c;欢迎大家关注分享收藏订阅。 原型模式在游戏开发中是一种重要的设计模式&#xff0c;…

微服务部署的正确策略

微服务部署挑战 单体应用程序的部署意味着您运行单个&#xff08;通常是大型应用程序&#xff09;的多个相同副本。这主要是通过配置 N 个服务器&#xff08;无论是物理服务器还是虚拟服务器&#xff09;并在每台服务器上运行应用程序的 M 个实例来完成。虽然这看起来非常简单…

节日灯饰灯串灯出口欧洲CE认证办理

灯串&#xff08;灯带&#xff09;&#xff0c;这个产品的形状就象一根带子一样&#xff0c;再加上产品的主要原件就是LED&#xff0c;因此叫做灯串或者灯带。2022年&#xff0c;我国灯具及相关配件产品出口总额超过460亿美元。其中北美是最大的出口市场。其次是欧洲市场&#…

display有哪些值

CSS的display属性用于控制元素的显示方式&#xff0c;它可以设置多种不同的值&#xff0c;以决定元素在文档中的呈现方式。以下是一些常见的display属性值&#xff1a; block&#xff1a; 元素以块级元素的方式显示。换行&#xff0c;并且占据父容器的整个可用宽度。常见的块级…

SQL创建新表

表的创建、修改与删除&#xff1a; 1.1 直接创建表&#xff1a;CREATE TABLE [IF NOT EXISTS] tb_name – 不存在才创建&#xff0c;存在就跳过 (column_name1 data_type1 – 列名和类型必选 [ PRIMARY KEY – 可选的约束&#xff0c;主键 | FOREIGN KEY – 外键&#xff0c;引…

Python 字节码介绍

了解 Python 字节码是什么&#xff0c;Python 如何使用它来执行你的代码&#xff0c;以及知道它是如何帮到你的。 ​编辑 如果你曾经编写过 Python&#xff0c;或者只是使用过 Python&#xff0c;你或许经常会看到 Python 源代码文件——它们的名字以 .py 结尾。你可能还看到过…

Spring的AOP开发-注解方式开发AOP

基于注解配置的AOP 注解方式AOP的基本使用 Spring的AOP也提供了注解方式配置&#xff0c;使用相应的注解替代之前的xml配置&#xff0c;xml配置AOP时&#xff0c;我们主要配置了三部分&#xff1a;目标类被Spring容器管理&#xff08;注解使用Service&#xff09;、通知类被S…

全网唯一!Matlab王者荣耀配色包MHonor

前些日子在家整理文档&#xff0c;偶然发现自己一年前建的一个工程&#xff0c;其大概内容是从王者荣耀一些角色皮肤的原画中提取配色方案&#xff0c;从而用于PPT制作、论文插图绘制等&#xff0c;为枯燥的科研生活增添点儿乐趣。 但是&#xff0c;由于自己当时的技术力还不够…

Java Spring Boot 写 API 接口

在当今快速的软件开发世界中&#xff0c;构建 API 接口是非常常见的任务。因为许多应用程序需要通过 API 接口来与其他应用程序通信。API 接口不仅可以提供应用程序的数据&#xff0c;还可以将应用程序的功能公开为可重用的服务。Java Spring Boot 是一个用于创建独立、产品级别…

Android Studio实现简易计算器(带横竖屏,深色浅色模式,更该按钮颜色,selector,style的使用)

目录 前言 运行结果&#xff1a; 运行截屏&#xff08;p50e&#xff09; apk文件 源码文件 项目结构 总览 MainActivity.java drawable 更改图标的方法&#xff1a; blackbutton.xml bluebuttons.xml greybutton.xml orangebuttons.xml whitebutton.xml layout 布…

关联规则挖掘(上):数据分析 | 数据挖掘 | 十大算法之一

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作&#xff0c;主要擅长领域有&#xff1a;爬虫、后端、大数据…

复习 --- QT服务器客户端

服务器&#xff1a; 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTcpServer> #include<QTcpSocket> #include<QMessageBox> #include<QDebug> #include<QList> #include<QListWidget> #in…

[C国演义] 第十三章

第十三章 三数之和四数之和 三数之和 力扣链接 根据题目要求: 返回的数对应的下标各不相同三个数之和等于0不可包含重复的三元组 – – 即顺序是不做要求的 如: [-1 0 1] 和 [0, 1, -1] 是同一个三元组输出答案顺序不做要求 暴力解法: 排序 3个for循环 去重 — — N^3, …

IDT 一款自动化挖掘未授权访问漏洞的信息收集工具

IDT v1.0 IDT 意为 Interface detection&#xff08;接口探测) 项目地址: https://github.com/cikeroot/IDT/该工具主要的功能是对批量url或者接口进行存活探测&#xff0c;支持浏览器自动打开指定的url&#xff0c;避免手动重复打开网址。只需输入存在批量的url文件即可。 …

stm32之HAL库操作PAJ75620

一、模块简介 手势模块PAJ7620主要利用IIC或SPI协议来实现数据的传输&#xff0c;本实验用的模块是以IIC来进行信息传输。支持电压从2.8v到3.6v, 正常可以选择3.3v。检测的距离从5到15cm, 可以检测9种手势&#xff0c;包括 右&#xff1a;编码为 0x01左&#xff1a;编码为 0x0…