面试算法-59-二叉树中的最大路径和

题目

二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。

路径和 是路径中各节点值的总和。

给你一个二叉树的根节点 root ,返回其 最大路径和 。

示例 1:

输入:root = [1,2,3]

输出:6

解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6

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

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

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

        max[0] = Math.max(maxLeft[0], maxRight[0]);
        max[0] = Math.max(max[0], left + root.val + right);
        return Math.max(left, right) + root.val;
    }
}
相关推荐
AI脚下的巨人几秒前
机器人逆运动学:从SVD到IK算法
算法·机器人
ゞ 正在缓冲99%…1 小时前
2025.9.28华为软开
算法·华为
9ilk1 小时前
【C++】 --- 哈希
c++·后端·算法·哈希算法
芯片智造2 小时前
光刻工艺工程师职场就业相关面试问题汇总
经验分享·面试·芯片·半导体
再卷也是菜2 小时前
C++篇(21)图
数据结构·c++·算法
星轨初途2 小时前
C++入门(算法竞赛类)
c++·经验分享·笔记·算法
灰灰勇闯IT4 小时前
KMP算法在鸿蒙系统中的应用:从字符串匹配到高效系统级开发(附实战代码)
算法·华为·harmonyos
小龙报4 小时前
【算法通关指南:数据结构和算法篇 】队列相关算法题:3.海港
数据结构·c++·算法·贪心算法·创业创新·学习方法·visual studio
csuzhucong4 小时前
一阶魔方、一阶金字塔魔方、一阶五魔方
算法
五花就是菜4 小时前
P12906 [NERC 2020] Guide 题解
算法·深度优先·图论