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; // 返回该节点为根的子树的深度
    }
}
相关推荐
Java内核笔记13 小时前
Spring Boot 4 拥抱 Jackson 3:包名迁移、配置改名与自动配置源码剖析
java·后端
旖旎夜光13 小时前
LeetCode 11:盛最多水的容器(双指针问题) —— 题解
数据结构·c++·算法·leetcode·双指针
一只齐刘海的猫13 小时前
【Leetcode】乘积最大子数组
算法·leetcode·职场和发展
程序员黑豆14 小时前
什么是JDK以及JDK都由哪些部分组成呢
java·前端·ai编程
估值探索者14 小时前
【Python实时盯盘与预警 #08】成交额突然放大2倍?Python窗口比较抓异动
java·开发语言·python
凤山老林14 小时前
Spring Boot 定时任务进阶:动态 Cron 与集群防重实战
java·spring boot·后端·定时任务·集群定时任务
xbgRS15 小时前
spring整合mybaits
java·spring·mybatis
hold?fish:palm16 小时前
20 旋转图像
c++·算法·leetcode
Tim_1016 小时前
【C++】024、new[]与delete[]配对使用
java·开发语言
小黑技术栈16 小时前
Java前端基础到入门——16day
java·开发语言·前端