【重点】【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);
    }
}
相关推荐
plus4s15 分钟前
2月13日(73-75题)
数据结构·c++·算法
近津薪荼17 分钟前
dfs专题8——子集
算法·深度优先
独断万古他化25 分钟前
【算法通关】位运算:位图、异或消消乐,高频算法题全解
算法·位运算
你的冰西瓜36 分钟前
C++ STL算法——修改序列算法
开发语言·c++·算法·stl
大黄说说39 分钟前
彻底删除重复节点——LeetCode 82 题「有序链表去重 II」详解
算法·leetcode·链表
如意猴1 小时前
003【高精度算法】加法/减法/乘法/除法
算法
仰泳的熊猫1 小时前
题目1465:蓝桥杯基础练习VIP-回形取数
数据结构·c++·算法·蓝桥杯
Hag_201 小时前
LeetCode Hot100 15.三数之和
算法·leetcode·职场和发展
俩娃妈教编程1 小时前
洛谷选题:P1307 [NOIP 2011 普及组] 数字反转
c++·算法
laplace01231 小时前
浮点数精度
人工智能·算法·agent·qwen