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

【Leetcode 热题 100】124. 二叉树中的最大路径和

问题背景

二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。
路径和 是路径中各节点值的总和。
给你一个二叉树的根节点 r o o t root root,返回其 最大路径和

数据约束

  • 树中节点数目范围是 [ 1 , 3 × 1 0 4 ] [1, 3 \times 10 ^ 4] [1,3×104]
  • − 1000 ≤ N o d e . v a l ≤ 1000 -1000 \le Node.val \le 1000 1000Node.val1000

解题过程

参考 二叉树的直径,这两题除了待求目标,其它是完全一样的。
大体上是将路径拆分成两条自上而下的路线,不断地递归更新最大值即可。

具体实现

/**
 * 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 {
    // 注意 static 不是所有情况下都可以加的,要考虑该变量是否需要重置
    private int res = Integer.MIN_VALUE;

    public int maxPathSum(TreeNode root) {
        dfs(root);
        return res;
    }

    // 递归方法返回的是当前自上而下的路线上,各个节点之和
    private int dfs(TreeNode root) {
        if(root == null) {
            return 0;
        }
        int left = dfs(root.left);
        int right = dfs(root.right);
        // 根据左右子树的和来更新答案
        res = Math.max(res, left + right + root.val);
        return Math.max(Math.max(left, right) + root.val, 0);
    }
}

http://www.kler.cn/a/447507.html

相关文章:

  • 8位移位寄存器的verilog语言
  • SQL 插入数据详解
  • DB-GPT V0.6.3 版本更新:支持 SiliconCloud 模型、新增知识处理工作流等
  • MacPorts 中安装高/低版本软件方式,以 RabbitMQ 为例
  • 半连接转内连接规则的原理与代码解析 |OceanBase查询优化
  • IIC I2C子协议 SMBus协议 通信协议原理 时序 SMBus深度剖析
  • 混合开发环境---使用编程AI辅助开发Qt
  • NOI与USACO的关系
  • 博客系统(Java 实现详解)
  • 【最大似然估计】之Python实现
  • 图像生成工具WebUI
  • MySQL知识汇总(二):select
  • ARM原理
  • 文件包含tomato靶机通关
  • 39.在 Vue3 中使用 OpenLayers 导出 GeoJSON 文件及详解 GEOJSON 格式
  • LLMs之rStar:《Mutual Reasoning Makes Smaller LLMs Stronger Problem-Solvers》翻译与解读
  • 前端知识补充—HTML
  • Java每日一题(2)
  • 260-高速AD/DA开发板 大容量FPGA编程 USRP K7-SDR Kintex-7 XC7K325T
  • 基于NodeMCU的物联网空调控制系统设计
  • zookepper安装部署
  • Vue.js 核心概念:模板、指令、数据绑定
  • centos7安装python3(保留python2.7)
  • 酷黑金色配色 影片素材不过时 色彩丰富 电影主题html
  • 前端的Python应用指南(一):快速构建 Web 服务器 - Flask vs Node.js 对比
  • 智能语音识别模块与声音传感器模块对比分析:原理、优缺点、性价比与应用领域