二叉树中的最大路径和

题目链接:

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;
};
相关推荐
萧西待水10 小时前
奥赛一本通 1447 靶形数独
算法·深度优先
泯泷12 小时前
那段文字是谁删的?Yjs 14 正式版之前,一套删除归属方案的实现与边界
前端·javascript·算法
hold?fish:palm12 小时前
34 合并K个升序链表
javascript·算法·链表
Navigator_Z14 小时前
LeetCode //C - 1252. Cells with Odd Values in a Matrix
c语言·算法·leetcode
野槐14 小时前
前端项目优化(有了我,会发生...)
前端
aa小小15 小时前
【无标题】
前端
语戚15 小时前
力扣 1621. 大小为K的不重叠线段的数目:动态规划(Java 实现)
java·算法·leetcode·动态规划·力扣·dp
青山木16 小时前
Hot 100 --- 最长有效括号
java·数据结构·算法·leetcode·动态规划
计算机魔术师16 小时前
还在单线程跟 AI 聊天?Claude Code 并行多会话让你一个人干三个人的活
前端
志尊宝16 小时前
Vue3 零基础每日笔记(038):亲手封装 useDebounceFn 与 useThrottleFn——高频事件的流量阀
前端·javascript·vue·html·vue3