Java | Leetcode Java题解之第543题二叉树的直径

题目:

题解:

java 复制代码
class Solution {
    int ans;
    public int diameterOfBinaryTree(TreeNode root) {
        ans = 1;
        depth(root);
        return ans - 1;
    }
    public int depth(TreeNode node) {
        if (node == null) {
            return 0; // 访问到空节点了,返回0
        }
        int L = depth(node.left); // 左儿子为根的子树的深度
        int R = depth(node.right); // 右儿子为根的子树的深度
        ans = Math.max(ans, L+R+1); // 计算d_node即L+R+1 并更新ans
        return Math.max(L, R) + 1; // 返回该节点为根的子树的深度
    }
}
相关推荐
Zane19945 分钟前
复制算法明明要浪费一半内存,为什么新生代还偏偏用它
java·后端
worilb5 分钟前
Java/JVM 常见诊断文件对比
java·开发语言
toolsmith11 分钟前
AI能替你读代码,但替代不了你积累洞察力:一次YouTrack逆向实战全记录
java·源码阅读
步行cgn12 分钟前
Spring Boot 绑定简单 Bean 详解
java·spring boot·后端
鹿角片ljp13 分钟前
我如何用 Frontend Design Skill 重构平台
java
未秃头的程序猿14 分钟前
分库分表一年后,我复盘了当时最该想清楚的三件事
java·数据库·后端
岁月如歌778617 分钟前
顺序消息与幂等消费完全指南:从队列有序到接口幂等
java·后端·架构
秋名RG17 分钟前
Java 泛型深度解析:从类型安全到现代实践(JDK 21 视角)
java·windows·安全
SamDeepThinking18 分钟前
不改逻辑、不拆方法:仅靠「调整代码顺序」提升可读性
java·后端·程序员
2601_9622982725 分钟前
交易开拓者通常使用什么编程语言?这种语言如何帮助自动化交易?
java·c++·python·编程语言·自动化交易