面试算法-173-二叉树的直径

题目

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

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

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

示例 1:

输入:root = 1,2,3,4,5

输出:3

解释:3 ,取路径 4,2,1,3 或 5,2,1,3 的长度。

解

java 复制代码
class Solution {
    public int diameterOfBinaryTree(TreeNode root) {
        int[] max = { 0 };
        dfs(root, max);
        return max[0];
    }

    public int dfs(TreeNode root, int[] max) {
        if (root == null) {
            return 0;
        }

        int[] maxLeft = { 0 };
        int left = dfs(root.left, maxLeft);
        int[] maxRight = { 0 };
        int right = dfs(root.right, maxRight);

        max[0] = Math.max(maxLeft[0], maxRight[0]);
        max[0] = Math.max(max[0], left + right);

        return Math.max(left, right) + 1;
    }
}
相关推荐
飞Link2 小时前
什么是 AirSim?一文读懂无人机仿真平台
python·算法·无人机
一去不复返的通信er4 小时前
贪心算法-合并区间(LeetCode 56)
算法·leetcode·贪心算法
Shaoshing5 小时前
LeetCode100 49. 字母异位词分组
java·算法
YFJ_mily5 小时前
第二届区块链技术与基础模型国际学术会议(BTFM2027)
算法·区块链·能源·智能系统·rdlink研发家·机器人自动化
考研保研资料分享5 小时前
四非会计保研中国矿大(北京):七场考核、候补与择校复盘
面试
汤姆宝库5 小时前
收官深拆:第一性原理、产业电网与未来推演
大数据·人工智能·算法
moshuying7 小时前
块扩散 + GDN 改造:Clover 把「并行生成」塞进了 Agent 的长上下文里
前端·算法
没落之王8 小时前
历史系统建模:宋初太祖太宗「再立天庭」秩序重构推演
人工智能·算法·重构
INGNIGHT8 小时前
91 · 最小调整代价(序列dp)
数据结构·算法·leetcode