二叉树中的最大路径和

题目链接:

124. 二叉树中的最大路径和 - 力扣(LeetCode)

解题思路:

  1. 首先题目的意思 路径和,是指能构成一条路径的 最大值,简单点来说,就是找打,一条以一个节点为 跟节点,左子树和右子树 都分别只取一侧构成一条 路径

  2. 我们需要遍历每个节点,产生负值的左子树或者右子树,就不需要考虑这个的价值了。遍历时 ,返回当前节点只取 左子树,或者右子树所产生的最大值 ,这样就可以在递归遍历的时候,看当前节点是不是 满足 以当前节点为 根 作为路径 是最大值即可

代码:

javascript 复制代码
/**
 * @param {TreeNode} root
 * @return {number}
 */
var maxPathSum = function (root) {
    let res = Number.MIN_SAFE_INTEGER;

    function getMax(root) {
        if (root === null) return 0;

        let leftMax = Math.max(getMax(root.left), 0)
        let rightMax = Math.max(getMax(root.right), 0)

        let curMax = root.val + leftMax + rightMax
        res = Math.max(res, curMax)

        return root.val + Math.max(leftMax, rightMax)
    }
    getMax(root)

    return res;
};
相关推荐
qq_2518364571 分钟前
基于java Web汽车销售管理系统设计与实现
java·前端·汽车
花椒技术6 分钟前
低代码平台接入 Agent 后,我们踩到的组件、上下文和追问坑
前端·人工智能·agent
Godspeed Zhao13 分钟前
从零开始学AI16——SVM
算法·机器学习·支持向量机
江屿风24 分钟前
C++OJ题经验总结(竞赛)1
开发语言·c++·笔记·算法
nebula-AI25 分钟前
人工智能导论:模型与算法(核心技术)
人工智能·深度学习·神经网络·算法·机器学习·集成学习·sklearn
运筹vivo@43 分钟前
LeetCode 2405. 子字符串的最优划分
c++·算法·leetcode·职场和发展·哈希表
数智工坊44 分钟前
视觉-语言-动作模型解剖学:从模块、里程碑到核心挑战
论文阅读·人工智能·深度学习·算法·transformer
豹哥学前端1 小时前
事件循环(Event Loop)深度解析:让你彻底搞懂 JS 的执行顺序
前端·javascript·面试
有点。1 小时前
C++(枚举法一练习题)
开发语言·c++·算法