当前位置: 首页 > news >正文

【leetcode hot 100 124】二叉树中的最大路径和

解法一:(递归)考虑实现一个简化的函数 maxGain(node),该函数计算二叉树中的一个节点的最大贡献值,具体而言,就是在以该节点为根节点的子树中寻找以该节点为起点的一条路径,使得该路径上的节点值之和最大。

具体而言,该函数的计算如下。

  • 空节点的最大贡献值等于 0。
  • 非空节点的最大贡献值等于节点值与其子节点中的最大贡献值之和(对于叶节点而言,最大贡献值等于节点值)
/**
 * 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 {
    int maxSum = Integer.MIN_VALUE; // 全局变量记录最大值

    public int maxPathSum(TreeNode root) {
        maxRoot(root);
        return maxSum;
    }

    public int maxRoot(TreeNode root){
        // 计算root节点的最大贡献值
        if(root==null){
            return 0;
        }

        // 左右节点我们只取大于0的节点(不取负数,以得到maxSum的最大值)
        int left = Math.max(maxRoot(root.left),0);
        int right = Math.max(maxRoot(root.right),0);

        // 更新全局最大值
        int newPath = root.val + right + left;
        maxSum = Math.max(maxSum, newPath);
		
		// 返回值
        return root.val + Math.max(right,left);
    }
}

注意:

  • 递归函数maxRoot的作用为计算root节点的最大贡献值
  • 全局变量maxSum的作用为记录最大路径和
  • 递归左右节点时,我们只取大于0的节点(不取负数,以得到maxSum的最大值):int left = Math.max(maxRoot(root.left),0);
  • 更新最大值时,要考虑当前节点值+左节点最大贡献值+右节点最大贡献值,然后和maxSum取最大值
  • 返回值为:root.val + Math.max(right,left)

相关文章:

  • OSG简介
  • 2025 ubuntu系统安装docker并迁移docker,docker安装到指定的目录以及文件迁移,docker迁移文件
  • 滚动元素的新api
  • 大模型GGUF和LLaMA的区别
  • 整体二分算法讲解及例题
  • vue中ref解析
  • 1.排序算法(学习自用)
  • 第13章贪心算法
  • 深度学习框架PyTorch——从入门到精通(6.1)自动微分
  • [RH342]iscsi配置与排错
  • qt下载和安装教程国内源下载地址
  • 再学:call与delegatecall、call转账 Bank合约
  • 07-SDRAM控制器的设计——Sdram_Control.v代码解析
  • Git使用SSH登陆
  • synchronized的原理和锁升级
  • Ubuntu “文件系统根目录”上的磁盘空间不足
  • 数据结构篇——线索二叉树
  • 【R语言】lm线性回归及输出含义,置信区间,预测,R方,ggplot 拟合直线
  • Unity学习之Shader总结(一)
  • Ubuntu20.04安装Nvidia显卡驱动
  • 荆州市委书记汪元程:全市各级干部要做到慎微、慎初、慎独、慎友
  • 蔡澜回应“入ICU观察”称未至于病危,助理:只是老毛病
  • 顺利撤离空间站,神十九乘组踏上回家之旅
  • 上海“模速空间”:将形成人工智能“北斗七星”和群星态势
  • 工信部:加快自动驾驶系统安全要求强制性国家标准研制
  • 报告显示2024年全球军费开支增幅达冷战后最大