二叉树中的最大路径和

题目链接:

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;
};
相关推荐
起名时在学Aiifox9 小时前
前端文件下载功能深度解析:从基础实现到企业级方案
前端·vue.js·typescript
千金裘换酒9 小时前
LeetCode反转链表
算法·leetcode·链表
2501_941877989 小时前
从配置热更新到运行时自适应的互联网工程语法演进与多语言实践随笔分享
开发语言·前端·python
云上凯歌10 小时前
01 ruoyi-vue-pro框架架构剖析
前端·vue.js·架构
byzh_rc10 小时前
[认知计算] 专栏总结
线性代数·算法·matlab·信号处理
华仔啊10 小时前
JavaScript 如何准确判断数据类型?5 种方法深度对比
前端·javascript
qq_4335545411 小时前
C++ manacher(求解回文串问题)
开发语言·c++·算法
歌_顿11 小时前
知识蒸馏学习总结
人工智能·算法
毕设十刻11 小时前
基于Vue的迅读网上书城22f4d(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
程序员小寒11 小时前
从一道前端面试题,谈 JS 对象存储特点和运算符执行顺序
开发语言·前端·javascript·面试