【力扣 - 二叉树的直径】

题目描述

给你一棵二叉树的根节点,返回该树的 直径 。
二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。
两节点之间路径的 长度 由它们之间边数表示。
在这里插入图片描述

提示:

树中节点数目在范围 [1, 10000]

-100 <= Node.val <= 100

题解

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
int maxLen(struct TreeNode* root)
{if(root == NULL){return 0; // Base case: return 0 if the current node is NULL}int leftLen;int rightLen;// Calculate the maximum path length of the left subtreeleftLen = maxLen(root->left) + 1;// Calculate the maximum path length of the right subtreerightLen = maxLen(root->right) + 1;// Return the maximum of the left and right path lengthsreturn leftLen > rightLen ? leftLen : rightLen;
}int Traversal(struct TreeNode* root)
{if(root == NULL){return INT_MIN; // Return minimum integer value if the current node is NULL}int diameter = INT_MIN; // Initialize diameter to minimum integer value// Calculate the diameter passing through the current nodediameter = maxLen(root->left) + maxLen(root->right);// Update diameter with the maximum of diameter, left subtree traversal, and right subtree traversaldiameter = fmax(diameter, Traversal(root->left));diameter = fmax(diameter, Traversal(root->right));return diameter; // Return the final diameter value
}int diameterOfBinaryTree(struct TreeNode* root)
{// Post-order traversal to calculate the diameter of the binary treereturn Traversal(root);
}

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

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

相关文章

【最新Dubbo3深入理解】Dubbo3核心Tripple协议详解

欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术的推送&#xff01; 在我后台回复 「资料」 可领取编程高频电子书&#xff01; 在我后台回复「面试」可领取硬核面试笔记&#xff01; 文章导读地址…

区块链游戏解说:什么是 Planet IX

作者&#xff1a;lesleyfootprint.network 编译&#xff1a;cicifootprint.network 数据源&#xff1a;Planet IX Dashboard 什么是 Planet IX Planet IX&#xff0c;一个由原生 IX TOKEN 推动的 Web3 玩赚平台。作为一款 GameFi 策略游戏&#xff0c; Planet IX 上的每项资…

C语言字符串函数strchr与strrchr

注意&#xff1a; 这两个函数的功能&#xff0c;都是在指定的字符串 s 中&#xff0c;试图找到字符 c。strchr() 从左往右找&#xff0c;strrchr() 从右往左找。字符串结束标记 ‘\0’ 被认为是字符串的一部分。 示例 char *p;p strchr("www.qq.com", .); // 从左…

python自动化接口测试

前几天&#xff0c;同组姐妹说想要对接口那些异常值进行测试&#xff0c;能否有自动化测试的方法。仔细想了一下&#xff0c;工具还挺多&#xff0c;大概分析了一下&#xff1a; 1、soapui:可以对接口参数进行异常值参数化&#xff0c;可以加断言&#xff0c;一般我们会加http…

如何申请试用Gemini 1.5 Pro

https://developers.googleblog.com/2024/02/gemini-15-available-for-private-preview-in-google-ai-studio.html 我开发的chatgpt网站&#xff1a; https://chat.xutongbao.top

浅谈数字信号处理器的本质与作用:从定义、原理到应用场景

数字信号处理器&#xff08;DSP&#xff09;作为一种关键的电子元件&#xff0c;在通信、音频、图像处理等领域扮演着不可或缺的角色。然而&#xff0c;对于许多人来说&#xff0c;数字信号处理器的概念可能依然模糊&#xff0c;其作用和原理也许并不为人所熟知。因此&#xff…

”戏说“ 交换机 与 路由器

一般意义上说 老哥 这文章发表 的 东一榔头 西一锤 呵呵&#xff0c; 想到哪里就啰嗦到哪里 。 交换机&#xff1a; 其实就是在通道交换 路由器&#xff1a; 不光是在通道交换还要在协议上交换 下图你看懂了吗&#xff1f; &#xff08;仅仅数据交换-交换机 协议…

Bert基础(三)--位置编码

背景 还是以I am good&#xff08;我很好&#xff09;为例。 在RNN模型中&#xff0c;句子是逐字送入学习网络的。换言之&#xff0c;首先把I作为输入&#xff0c;接下来是am&#xff0c;以此类推。通过逐字地接受输入&#xff0c;学习网络就能完全理解整个句子。然而&#x…

Eclipse的Java Project的入口main函数

在使用Eclipse创建java project项目的时候&#xff0c;一个项目里面通常只有一个main&#xff0c;那么一个项目里面是否可以有多个main函数呢&#xff1f;其实可以的&#xff0c;但是运行java application的时候要选择执行哪个main函数。 下面举个例子&#xff1a; 1、创建一个…

(二十二)Flask之上下文管理第三篇【收尾—讲一讲g】

目录&#xff1a; 每篇前言&#xff1a;g到底是什么&#xff1f;生命周期在请求周期内保持数据需要注意的是&#xff1a; 拓展—面向对象的私有字段深入讲解一下那句&#xff1a; 每篇前言&#xff1a; &#x1f3c6;&#x1f3c6;作者介绍&#xff1a;【孤寒者】—CSDN全栈领域…

Django使用Celery异步

安装包 pip install celerypip install eventlet 1.在项目文件的根目录下创建目录结果 2. 在main.py文件中 # !/usr/bin/env python # -*-coding:utf-8 -*-""" # Author &#xff1a;skyTree # version &#xff1a;python 3.11 # Description&#…

备战蓝桥杯---动态规划(应用2(一些十分巧妙的优化dp的手段))

好久不见&#xff0c;甚是想念&#xff0c;最近一直在看过河这道题&#xff08;感觉最近脑子有点宕机QAQ&#xff09;&#xff0c;现在算是有点懂了&#xff0c;打算记录下这道又爱又恨的题。&#xff08;如有错误欢迎大佬帮忙指出&#xff09; 话不多说&#xff0c;直接看题&…

2024年【T电梯修理】最新解析及T电梯修理操作证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 T电梯修理最新解析根据新T电梯修理考试大纲要求&#xff0c;安全生产模拟考试一点通将T电梯修理模拟考试试题进行汇编&#xff0c;组成一套T电梯修理全真模拟考试试题&#xff0c;学员可通过T电梯修理操作证考试全真模…

maven配置多仓库私服

经常见我们除了需要官方的仓库以外&#xff0c;更多是配置了国内的阿里云公共仓库。但很多的企业会有自己的公共组件&#xff0c;两者会结合起来使用&#xff0c;就需要配置公司的私服。 而经常性的&#xff0c;我们会在 apache-maven-3.8.6\conf\settings.xml 中&#xff0c;…

Django学习笔记-HTML实现服务器图片的下载

1.index编写代码,跳转下载页面 2.创建download界面 3.编写download路由 4.创建download函数 1).如果请求的方法是GET&#xff0c;imglist变量存储从models.imgModel模型中获取的所有对象,创建字典ctx,使用render函数来渲染download.htm 2).如果请求的方法是POST,获取要下载的文…

啤酒:精酿啤酒与沙拉的轻盈享受

在繁忙的生活中&#xff0c;我们总是在寻找一种简单而健康的美食享受。当Fendi Club啤酒与沙拉相遇&#xff0c;它们将为我们带来一场轻盈的味觉之旅。 Fendi Club啤酒&#xff0c;以其醇厚的口感和淡淡的麦芽香气而闻名。这款啤酒在酿造过程中采用了特别的工艺&#xff0c;使得…

【Python】2019年蓝桥杯省赛真题——完全二叉树的权值

蓝桥杯 2019 省 A&B&#xff1a;完全二叉树的权值 题目描述 给定一棵包含 N N N 个节点的完全二叉树&#xff0c;树上每个节点都有一个权值&#xff0c;按从上到下、从左到右的顺序依次是 A 1 , A 2 , ⋯ A N A_1,A_2, \cdots A_N A1​,A2​,⋯AN​&#xff0c;如下图所…

Python接口自动化框架设计到开发,赶紧用起来!

1.如何设计一个接口自动化测试框架 根据接口地址、接口类型、请求数据、预期结果来进行设计&#xff0c;对于需要登录后才能进行操作的接口那么则需要进行header cookie等数据的传递&#xff0c;自动化测试的难点就是数据依赖。 2.python操作excel获得内容 首先python操作exce…

Java 学习和实践笔记(16):类的理解以及初始值

类&#xff0c;英文名叫class。基本上对应的就是语言里的名词。 比如&#xff0c;房子、人、树、花、汽车等等&#xff0c;这些名词&#xff0c;这些可以定义成类。 以房子为例&#xff0c;作为一个房子&#xff0c;它一定有相应的属性&#xff0c;比如房顶、墙、门、窗等等&…

windows下采用 nginx配置websocket支持wss流程

第一步、安装OpenSSL &#xff08;1&#xff09;下载OpenSSL软件包 地址&#xff1a;https://slproweb.com/products/Win32OpenSSL.html OpenSSL版本说明&#xff1a; Win64 OpenSSL v1.1.1wLight&#xff0c;安装Win64 OpenSSL v1.1.1w最常用的软件包 Win64 OpenSSL v1.1…