day52(1.2)——leetcode面试经典150

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 sum = Integer.MIN_VALUE;
    public int dfs(TreeNode root) {
        if(root == null) {
            return 0;
        }
        //有子结点
        int left = dfs(root.left);
        int right = dfs(root.right);
        // 两条链拼成路径
        sum = Math.max(sum, left+right+root.val);
        // 当前子树最大链和(注意这里和 0 取最大值了)
        return Math.max(Math.max(left, right)+root.val, 0);
    }

    public int maxPathSum(TreeNode root) {
        dfs(root);
        return sum;
    }
}
相关推荐
dazzle9 小时前
机器学习算法原理与实践-入门(三):使用数学方法实现KNN
人工智能·算法·机器学习
那个村的李富贵9 小时前
智能炼金术:CANN加速的新材料AI设计系统
人工智能·算法·aigc·cann
张张努力变强9 小时前
C++ STL string 类:常用接口 + auto + 范围 for全攻略,字符串操作效率拉满
开发语言·数据结构·c++·算法·stl
万岳科技系统开发9 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
张登杰踩9 小时前
MCR ALS 多元曲线分辨算法详解
算法
YuTaoShao9 小时前
【LeetCode 每日一题】3634. 使数组平衡的最少移除数目——(解法一)排序+滑动窗口
算法·leetcode·排序算法
波波00710 小时前
每日一题:.NET 的 GC是如何分代工作的?
算法·.net·gc
风暴之零10 小时前
变点检测算法PELT
算法
深鱼~10 小时前
视觉算法性能翻倍:ops-cv经典算子的昇腾适配指南
算法·cann
李斯啦果10 小时前
【PTA】L1-019 谁先倒
数据结构·算法