【算法三十】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. 最大子数组和

相关推荐
随意起个昵称6 小时前
区间dp-基础题目1(石子合并)
算法·动态规划
吞下星星的少年·-·6 小时前
线段树模板
算法
段一凡-华北理工大学6 小时前
2026 高炉炼铁智能化技术全景与演进路径~系列文章11:演进路径与行业未来
大数据·网络·人工智能·算法·工业智能体·高炉炼铁智能化
叶小鸡7 小时前
小鸡玩算法-力扣HOT100-多维动态规划
算法·leetcode·动态规划
星马梦缘7 小时前
aaaaa
数据结构·c++·算法
菜菜的顾清寒8 小时前
力扣HOT100(42)链表-随机链表的复制
算法·leetcode·链表
lqqjuly8 小时前
模型剪枝与稀疏化:理论、算法与可运行实现
人工智能·算法·剪枝
逻辑君8 小时前
Foresight研究报告【20260011】
人工智能·线性代数·算法·矩阵
珊瑚里的鱼8 小时前
【动态规划】不同路径Ⅱ
算法·动态规划
适应规律9 小时前
【无标题】
人工智能·python·算法