【重点】【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);
    }
}
相关推荐
handler014 分钟前
基础算法:BFS
开发语言·数据结构·c++·学习·算法·宽度优先
2401_879503415 分钟前
C++中的状态模式实战
开发语言·c++·算法
不当菜鸡的程序媛6 分钟前
神经网络——bias 偏置项(bias term) 或者截距项(intercept term)
人工智能·神经网络·算法
Aawy1206 分钟前
自定义字面量实战
开发语言·c++·算法
无尽的罚坐人生8 分钟前
hot 100 200. 岛屿数量
算法·dfs
j_xxx404_12 分钟前
LeetCode模拟算法精解II:外观数列与数青蛙
数据结构·c++·算法·leetcode
牢姐与蒯12 分钟前
字符串相乘
算法
得物技术13 分钟前
大禹平台:流批一体离线Dump平台的设计与应用|得物技术
java·后端·算法
2301_7938046924 分钟前
C++与硬件交互编程
开发语言·c++·算法
像污秽一样27 分钟前
算法设计与分析-习题9.2
数据结构·算法·排序算法·dfs