【重点】【DFS】124.二叉树中的最大路径和

题目

和求二叉树直径相同套路

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

    // 返回经过root的单边分支最大和
    public int dfs(TreeNode root) {
        if (root == null) {
            return 0;
        }
        int leftMax = Math.max(dfs(root.left), 0);
        int rightMax = Math.max(dfs(root.right), 0);
        max = Math.max(max, root.val + leftMax + rightMax);

        return root.val + Math.max(leftMax, rightMax);
    }
}
相关推荐
NAGNIP10 分钟前
Hugging Face 200页的大模型训练实录
人工智能·算法
Swift社区12 分钟前
LeetCode 457 - 环形数组是否存在循环
算法·leetcode·职场和发展
2401_8772742444 分钟前
2025数据结构实验八:排序
数据结构·算法·排序算法
J2虾虾1 小时前
空间矢量数据结构及其表达
算法
Neil今天也要学习1 小时前
永磁同步电机无速度算法--永磁同步电机转子位置精确估计的误差抑制方法
算法
Irene19911 小时前
JavaScript 常见算法复杂度总结(大O表示法)
javascript·算法
开心比对错重要1 小时前
进程、线程、虚拟线程详解及线程个数设置
java·jvm·算法·面试
爱学大树锯1 小时前
【594 · 字符串查找 II】
java·开发语言·算法
m0_692457102 小时前
图像噪点消除
人工智能·算法
2401_841495642 小时前
【Python高级编程】图着色动态可视化 APP
python·算法·matplotlib·tkinter·回溯法·图着色算法·动态可视化工具