leetcode-543. 二叉树的直径

devtools/2024/9/22 16:07:14/

题目描述

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

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

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

示例 1:

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

示例 2:

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

思路

如果做过leetcode-104. 二叉树的最大深度-CSDN博客这道题,很容易可以做出本题

无非在求最大深度的代码中,加入了一个求直径的过程。直径等于左子树深度+右子树深度+1,每次和预先设置好的最大值进行比对

PS:最后返回的是self.res-1,因为我们记录的一直都是节点的个数,直径等于节点个数-1,求边的个数

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def __init__(self):self.res = 0def depth(self, root):if not root:return 0 ldepth = self.depth(root.left)rdepth = self.depth(root.right)self.res = max(ldepth+rdepth+1, self.res)return max(ldepth,rdepth)+1def diameterOfBinaryTree(self, root):""":type root: TreeNode:rtype: int"""if not root:return 0self.depth(root)return self.res-1

http://www.ppmy.cn/devtools/99888.html

相关文章

Spring 中的 @ExceptionHandler 注解详解与应用

在开发 Web 应用程序时,异常处理是一个至关重要的部分。无论是用户输入错误,还是系统内部错误,如何优雅地处理这些异常,直接影响到用户体验和系统的可靠性。Spring 提供了强大的异常处理机制,其中 ExceptionHandler 注…

47.x86游戏实战-VEHHOOK封包函数

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 工具下载: 链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

告别手动录入,自动化PDF转Excel工具精选

PDF文件可以跨平台高兼容,这就使得在很多需要保存页面版式的文件我们都用PDF格式进行传输。很多时候Excel文件也被这样转发,可是编辑却成为了问题,这时候要是能有pdf转换成excel的工具就能事半功倍了。 1.福昕PDF转换大师 链接一下>>…

uart16550_ip_spec

用途:允许与调制解调器或其他外部设备进行通信,例如使用串行电缆和RS232协议的另一台计算机。 核心特性: WISHBONE接口:支持32位或8位数据总线模式(可选)。 FIFO操作:仅支持FIFO(先…

QTableView的一行里添加两个按钮

我是光明正大地抄,作者说的欢迎转载 作者:李鹏 出处:http://www.cnblogs.com/li-peng/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接&#xff0…

天猫商品评论API:获取商品热门评价与最新评价

天猫(Tmall)作为中国最大的B2C电商平台之一,提供了丰富的商品和服务。然而,天猫并没有直接公开一个通用的API来允许第三方开发者直接获取商品的热门评价或最新评价。这主要是出于保护用户隐私、防止恶意抓取和滥用数据等考虑。 不…

使用Python恢复Windows、Linux、MacOS回收站中的文件和目录

一、使用Python恢复Windows回收站中的文件和目录 import os import platformdef put_back_trash():# 获取操作系统类型os_type platform.system()if os_type "Windows": # Windowsfrom winshell import recycle_binfor item in recycle_bin():winshell.undelete(…

SQL 优化慢的update语句

原语句 UPDATE tbl_mix_traceSET mix_plan_id ( SELECT p.id FROM tbl_mix_plan p WHERE p.lot_id_out lot_id_in ),pro_date_in (SELECT p.pro_date_out FROM tbl_mix_plan p WHERE p.lot_id_out lot_id_in),shift_id_in (SELECT p.shift_id_out FROM tbl_mix_plan p WHER…