二叉树中的最大路径和

题目链接:

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;
};
相关推荐
kyriewen13 小时前
我手写了一个 EventEmitter,面试官追问了 6 个问题——第 4 个我没答上来
前端·javascript·面试
IT_陈寒13 小时前
Java的Date类又坑了我一次,改用时间戳真香
前端·人工智能·后端
先吃饱再说14 小时前
判断回文字符串,从一行代码到双指针优化
算法
小林攻城狮14 小时前
使用 Transport 节流解决 Vercel AI SDK 流式渲染卡死问题
前端·react.js
前端缘梦14 小时前
告别 TS 运行时类型漏洞!Zod 完整入门实战教程(前端 / 全栈必备)
前端·react.js·全栈
the_answer14 小时前
Webpack vs Vite 深度对比分析
前端·webpack
转转技术团队14 小时前
验证码识别实战:前端不写页面,改训模型了?
前端
MomentYY14 小时前
Temperature:AI 的“脑洞旋钮”
前端·llm·ai编程
远航_15 小时前
OpenSpec 完整详细介绍
前端·后端