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
相关推荐
IAUTOMOBILE21 小时前
Python 流程控制与函数定义:从调试现场到工程实践
java·前端·python
Fuxiao___21 小时前
C 语言核心知识点讲义(循环 + 函数篇)
算法·c#
漫随流水1 天前
c++编程:反转字符串(leetcode344)
数据结构·c++·算法
TT_44191 天前
python程序实现图片截图溯源功能
开发语言·python
小陈的进阶之路1 天前
logging 日志模块笔记
python
cqbelt1 天前
Python 并发编程实战学习笔记
笔记·python·学习
穿条秋裤到处跑1 天前
每日一道leetcode(2026.03.31):字典序最小的生成字符串
算法·leetcode
智算菩萨1 天前
【论文复现】Applied Intelligence 2025:Auto-PU正例无标签学习的自动化实现与GPT-5.4辅助编程实战
论文阅读·python·gpt·学习·自动化·复现
小陈工1 天前
2026年3月31日技术资讯洞察:AI智能体安全、异步编程突破与Python运行时演进
开发语言·jvm·数据库·人工智能·python·安全·oracle
老李的勺子1 天前
Agent 记忆失效的 5 种方式:完整排查复盘
python·llm