【算法三十】124. 二叉树中的最大路径和

124. 二叉树中的最大路径和

递归:

java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    //不可以写private int ans;
    //因为基本数据类型默认是0
    private int ans = Integer.MIN_VALUE;
    public int maxPathSum(TreeNode root) {
        //可以不写返回值,因为用不上
        dfs(root);
        return ans;
    }

    private int dfs(TreeNode node){
        if(node == null){
            return 0;
        }

        int lVal = dfs(node.left);
        int rVal = dfs(node.right);
        ans = Math.max(lVal+rVal+node.val,ans);
        return Math.max(0,Math.max(lVal,rVal)+node.val);
    }
}

时间复杂度:O(N)

空间复杂度:O(N)

总结:这题跟这道题目核心思路很像 53. 最大子数组和

相关推荐
高洁0126 分钟前
工信部教考中心证书-人工智能系列本系列
人工智能·python·深度学习·算法
陈王卜43 分钟前
Reduce 算子优化笔记
算法
wabs6661 小时前
关于图论【最短路径之Bellman_ford 算法(判断负权回路)|卡码网95.城市间货物运输II的思考】
数据结构·算法·图论·bellman_ford算法·卡码网·判断负权回路
YouonlyliveonceC1 小时前
《大话数据结构》第4章实战:中缀表达式转后缀 + 后缀表达式求值(完整可运行实现)
算法
phoenix@Capricornus1 小时前
从统计决策到贝叶斯估计
人工智能·算法·机器学习
AICDragon1 小时前
1.8%就够了:K3的896个MoE专家,为什么激活率这么低反而是好事?
人工智能·算法
VALENIAN瓦伦尼安教学设备2 小时前
ASHOOTER激光对中仪如何通过颜色确定调整是否合适
数据库·嵌入式硬件·算法
货拉拉技术2 小时前
重塑 Agent 度量衡:基于 LLM-as-a-Judge 的离线评估体系与实践
算法·设计模式
车压2 小时前
从“为什么”理解注意力机制
算法
wabs6662 小时前
关于哈希表【力扣15.三数之和的思考】
数据结构·算法·leetcode·散列表·哈希表·三数之和