LeetCode543题:二叉树的直径(python3)

代码思路:

先递归调用左儿子和右儿子求得它们为根的子树的深度 L和 R ,则该节点为根的子树的深度即为max(L,R)+1。该节点的 dnode值为L+R+1

递归搜索每个节点并设一个全局变量 ans记录 dnode的最大值,最后返回 ans-1 即为树的直径。

python 复制代码
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def diameterOfBinaryTree(self, root: Optional[TreeNode]) -> int:
        self.ans = 1
        def depth(node):
            # 访问到空节点了,返回0
            if not node: 
                return 0 
            # 左儿子为根的子树的深度
            L = depth(node.left) 
            # 右儿子为根的子树的深度
            R = depth(node.right)
            # 计算d_node即L+R+1 并更新ans
            self.ans = max(self.ans,L+R+1)
            # 返回该节点为根的子树的深度
            return max(L,R)+1 
        depth(root)
        return self.ans-1
相关推荐
德育处主任Pro2 分钟前
「py数据分析」04如何将 Python 爬取的数据保存为 CSV 文件
数据库·python·数据分析
咸鱼鲸11 分钟前
【PyTorch】PyTorch中数据准备工作(AI生成)
人工智能·pytorch·python
程序员Xu22 分钟前
【OD机试题解法笔记】连续出牌数量
笔记·算法·深度优先
遇见你很高兴32 分钟前
Pycharm中体验通义灵码来AI辅助编程
python
CoovallyAIHub35 分钟前
单目深度估计重大突破:无需标签,精度超越 SOTA!西湖大学团队提出多教师蒸馏新方案
深度学习·算法·计算机视觉
大虫小呓37 分钟前
50个Python处理Excel示例代码,覆盖95%日常使用场景-全网最全
python·excel
CoovallyAIHub38 分钟前
从FCOS3D到PGD:看深度估计如何快速搭建你的3D检测项目
深度学习·算法·计算机视觉
大模型真好玩43 分钟前
做题王者,实战拉跨!是时候给马斯克的Grok4泼盆冷水了!(Grok 4模型详细测评报告)
人工智能·python·mcp
羊八井44 分钟前
使用 Earth2Studio 和 AI 模型进行全球天气预测:太阳辐照
pytorch·python·nvidia
向左转, 向右走ˉ1 小时前
PyTorch随机擦除:提升模型抗遮挡能力
人工智能·pytorch·python·深度学习