OJ练习第149题—— 二叉树中的最大路径和

news/2024/7/5 4:00:21

二叉树中的最大路径和

力扣链接:124. 二叉树中的最大路径和

题目描述

二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。

路径和 是路径中各节点值的总和。

给你一个二叉树的根节点 root ,返回其 最大路径和 。

示例

在这里插入图片描述
在这里插入图片描述

解题思路

对于任意一个节点, 如果最大和路径包含该节点, 那么只可能是两种情况:
1. 其左右子树中所构成的和路径值较大的那个加上该节点的值后向父节点回溯构成最大路径
2. 左右子树都在最大路径中, 加上该节点的值构成了最终的最大路径

Java代码

class Solution {
    private int ret = Integer.MIN_VALUE;
    public int maxPathSum(TreeNode root) {
        getMax(root);
        return ret;
    }
    private int getMax(TreeNode r) {
        if(r == null) return 0;
        int left = Math.max(0, getMax(r.left));
        int right = Math.max(0, getMax(r.right));
        ret = Math.max(ret, r.val + left + right);
        return Math.max(left, right) + r.val;
    }
}

http://lihuaxi.xjx100.cn/news/1455658.html

相关文章

【一】ubuntu20.04上搭建containerd版( 1.2.4 以上)k8s及kuboard V3

k8s 部署全程在超级用户下进行 sudo su本文请根据大纲顺序阅读! 一、配置基础环境(在全部节点执行) 1、安装docker 使用apt安装containerd 新版k8s已经弃用docker转为containerd,如果要将docker改为containerd详见&#xff1a…

分布式事务与解决方案

一、什么是分布式事务 首先我们知道本地事务是指事务方法中的操作只依赖本地数据库,可保证事务的ACID特性。而在分布式系统中,一个应用系统被拆分为多个可独立部署的微服务,在一个微服务的事务方法中,除了依赖本地数据库外&#…

数据加工中的拉链任务

数据拉链任务 拉链任务是一种常见的数据追踪和历史记录技术,在ETL中也有广泛应用。拉链任务通过类似“版本控制”的方式,记录不同时间点的数据变化情况,可用于数据分析、报表输出、增量导出等场景。 在ETL中,拉链任务通常包含以…

IO流 详细介绍

一、IO流概述 1.IO:输入(Input读取数据)/输出(Output写数据) 2.流:是一种抽象概念,是对数据传输的总称,也就是说数据在设备间的传输称为流,流的本质是数据传输IO流就是用来处理设备间数据传输问题的。 3.常见的应用&#xff1a…

100道python练习题(十)

请继续查看以下第91到100题的代码示例: 编写一个程序,计算一个整数列表中所有元素的和。 def calculate_sum(nums):return sum(nums)number_list [1, 2, 3, 4, 5]sum_of_numbers calculate_sum(number_list)print("列表中所有元素的和&#xff…

基于PyTorch的图像识别

前言 图像识别是计算机视觉领域的一个重要方向,具有广泛的应用场景,如医学影像诊断、智能驾驶、安防监控等。在本项目中,我们将使用PyTorch来开发一个基于卷积神经网络的图像识别模型,用来识别图像中的物体。下面是要识别的四种物…

day20 飞机大战射击游戏

有飞行物类 飞行 爆炸 的连环画, 飞行的背景图 , 子弹图, 还有游戏开始 暂停 结束 的画面图。 设计一个飞机大战的小游戏, 玩家用鼠标操作hero飞行机, 射出子弹杀死敌机,小蜜蜂。 敌机可以获得分数&…

刷享全球美好 中信银行信用卡推出跨境消费系列活动

来源 | 镭射财经(leishecaijing) 日前,文旅部办公厅发布通知,恢复全国旅行社及在线旅游企业经营中国公民赴有关国家和地区(第三批)出境团队旅游和“机票酒店”业务,出境跟团游国家和地区由此前…