【LeetCode热题100】124.二叉树的最大路径和(二叉树)

一.题目要求

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

二.题目难度

困难

三.输入样例

示例 1:
在这里插入图片描述
输入:root = [1,2,3]
输出:6
解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6

示例 2:
在这里插入图片描述
输入:root = [-10,9,20,null,null,15,7]
输出:42
解释:最优路径是 15 -> 20 -> 7 ,路径和为 15 + 20 + 7 = 42

提示:
树中节点数目范围是 [1, 3 * 104]
-1000 <= Node.val <= 1000

四.解题思路

这题在递归讨论情况的时候掉了个坑,看了一下评论区有老哥也提到了,就直接引用了。
在这里插入图片描述
可以再简化一下,不用考虑5,6,因为左右会作为根提前出现

五.代码实现

class Solution {
public:
    int maxPathSum(TreeNode* root) {
        dfs(root);
       return m;
    }
    
    int dfs(TreeNode* root) {
       if(!root) return -99999;
       int l = dfs(root->left);
       int r = dfs(root->right);
       int lroot = l + root->val;
       int rroot = r + root->val;
       int lrroot = l + r + root->val;
       int val = root->val;
       int mmax = max(val, max(lrroot, max(lroot, rroot)));
        if(mmax > m) m = mmax;
        
        return max(val, max(lroot, rroot));
    }
private:
        int m = INT_MIN;
};

在这里插入图片描述

六.题目总结

分类讨论,什么情况下可以作为最终结果,什么情况下可以作为递归返回值,二者不是一回事。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/512530.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

百度行驶证C++离线SDK V1.1 C#接入

百度行驶证C离线SDK V1.1 C#接入 目录 说明 效果 项目 代码 说明 自己根据SDK封装了动态库&#xff0c;然后C#调用。 SDK包结构 效果 项目 代码 using Newtonsoft.Json; using System; using System.Drawing; using System.Runtime.InteropServices; using System.Text;…

Python基础之pandas:文件读取与数据处理

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、文件读取1.以pd.read_csv()为例&#xff1a;2.数据查看 二、数据离散化、排序1.pd.cut()离散化&#xff0c;以按范围加标签为例2. pd.qcut()实现离散化3.排序4.…

走进《与凤行》感受维达棉韧联名魅力

随着《与凤行》的热播&#xff0c;维达也陆续推出了各个纸抽系列的联名&#xff0c;棉韧联名就是这样一款结合了维达品牌优质棉韧面巾纸和《与凤行》IP元素的产品。这款软抽不仅在质地上保持了维达棉韧系列的柔软舒适&#xff0c;还融入了《与凤行》的设计元素&#xff0c;为用…

L2-036 网红点打卡攻略 ( 模拟题 )

本题链接&#xff1a;PTA | 程序设计类实验辅助教学平台 题目&#xff1a; 样例&#xff1a; 输入 6 13 0 5 2 6 2 2 6 0 1 3 4 2 1 5 2 2 5 1 3 1 1 4 1 2 1 6 1 6 3 2 1 2 1 4 5 3 2 0 2 7 6 5 1 4 3 6 2 6 5 2 1 6 3 4 8 6 2 1 6 3 4 5 2 3 2 1 5 6 6 1 3 4 5 2 7 6 2 1 3…

ubuntu20.04 运行 lio-sam 流程记录

ubuntu20.04 运行 lio-sam 一、安装和编译1.1、安装 ROS11.2、安装 gtsam1.3、安装依赖1.4、下载源码1.5、修改文件1.6、编译和运行 二、官方数据集的运行2.1、casual_walk_2.bag2.2、outdoor.bag、west.bag2.3、park.bag 三、一些比较好的参考链接 记录流程&#xff0c;方便自…

管理项目有哪些好用的系统?

不论在公司是什么角色&#xff0c;不过不管是负责哪一块&#xff0c;项目型公司的管理难点都会经历过&#xff0c;特别是中小型的做建筑装饰类的业务。 一般都会存在合同进度统计难、项目成本管控难、上下游结算难等问题&#xff0c;除了资金方面的原因&#xff0c;也有数据核…

c++对象指针

对象指针在使用之前必须先进行初始化。可以让它指向一个已定义的对象&#xff0c;也可以用new运算符动态建立堆对象。 定义对象指针的格式为&#xff1a; 类名 *对象指针 &对象; //或者 类名 *对象指针 new 类名(参数); 用对象指针访问对象数据成员的格式为&#xff1a…

ubuntu16.04不能在主机和虚拟机之间拷贝文本

问题 ubuntu16.04不能在主机和虚拟机之间拷贝文本。 原因 vmware tools没安装好。 解决办法 让虚拟机加载C:\Program Files (x86)\VMware\VMware Workstation\linux.iso光盘文件&#xff0c;设置如下&#xff1a; 拷贝虚拟机光盘中的VMwareTools-10.3.22-15902021.tar.gz文…

点旋转 与 坐标系旋转

之前想明白过&#xff0c;隔了一段时间没看&#xff0c;现在又忘记了。重新复习一下。 这篇博客写的很明白 推公式的话从坐标旋转开始推&#xff0c;容易理解&#xff0c;又容易推导。 1、坐标系中点的旋转的旋转矩阵 xrcos(αβ) r(cosαcosβ-sinαsinβ) xcosβ-ysinβ…

虹科Pico汽车示波器 | 免拆诊断案例 | 2019款别克GL8豪华商务车前照灯水平调节故障

一、故障现象 一辆2019款别克GL8豪华商务车&#xff0c;搭载LTG发动机&#xff0c;累计行驶里程约为10.7万km。车主反映&#xff0c;车辆行驶过程中组合仪表提示前照灯水平调节故障。 二、故障诊断 接车后试车&#xff0c;起动发动机&#xff0c;组合仪表上提示“前照灯水平…

线上剧本杀小程序开发,剧本杀行业的发展趋势

剧本杀一时火爆全网&#xff0c;剧本杀门店也是迅速占领了大街小巷&#xff0c;成为年轻人热衷的游戏娱乐方式。 不过&#xff0c;线下剧本杀因为价格高、剧本质量不过关等问题&#xff0c;迎来了“寒冬期”&#xff0c;线下剧本杀门店的发展逐渐“降温”。 随着互联网的发展…

跨平台内容策略:Kompas.ai让你的内容在各大平台上发光发热

在数字化营销的今天&#xff0c;品牌需要在多个社交媒体平台上建立强大的在线存在。每个平台都有其独特的用户群体和内容消费习惯&#xff0c;这就要求品牌制定精准的跨平台内容策略&#xff0c;以确保在不同的社交环境中都能发光发热。本文将深入探讨不同社交媒体平台的特点及…

一次性邮箱API发送邮件的步骤?如何使用?

一次性邮箱API发送邮件的注意事项&#xff1f;怎么确保安全发信&#xff1f; 使用一次性邮箱API发送邮件&#xff0c;不仅能保证邮件发送的高效性&#xff0c;还能确保用户邮箱信息的安全性。下面&#xff0c;AokSend将详细介绍使用一次性邮箱API发送邮件的具体步骤。 一次性…

ngAlain下使用nz-select与文件上传框出现灵异bug

bug描述 初始化页面&#xff0c;文件上传框无法出现&#xff1a; 但点击一次选择框以后&#xff0c;就会出现&#xff1a; 真的很神奇。。。 下面逐步排查看看是什么原因。 设想一&#xff1a; 选择框与文件框不可同时存在&#xff0c;删掉选择框看看&#xff1a; 还…

【OpenCV】 基础入门(一)初识 Mat 类 | 通过 Mat 类显示图像

&#x1f680; 个人简介&#xff1a;CSDN「博客新星」TOP 10 &#xff0c; C/C 领域新星创作者&#x1f49f; 作 者&#xff1a;锡兰_CC ❣️&#x1f4dd; 专 栏&#xff1a;【OpenCV • c】计算机视觉&#x1f308; 若有帮助&#xff0c;还请关注➕点赞➕收藏&#xff…

Windows11 使用WSL安装虚拟机

Windows11 使用WSL安装Unbuntu 安装Unbuntu 使用管理员命令打开powershell&#xff0c;执行如下命令&#xff0c;默认安装Unbuntu最新版本 wsl --install使用如下命令&#xff0c;获取在线的所有版本 wsl --list --online指定版本安装 wsl --install <Name>默认安装…

操作系统:动静态库

目录 1.动静态库 1.1.如何制作一个库 1.2.静态库的使用和管理 1.3.安装和使用库 1.4.动态库 1.4.1.动态库的实现 1.4.2.动态库与静态库的区别 1.4.3.共享动态库给系统的方法 2.动态链接 2.1.操作系统层面的动态链接 1.动静态库 静态库&#xff08;.a&#xff09;&…

Rust---复合数据类型之元组

目录 元组的使用输出结果 元组的使用 fn main() {// 创建一个元组let my_tuple : (i32, &str, f64) (10, "hello", 3.14);// 打印元组中的元素println!("{:?}", my_tuple);// 访问元组中的元素let first_element my_tuple.0; // 访问第一个元素let…

openldap(一):简介和安装

目录 1 OpenLDAP简介1.1 LDAP介绍1、什么LDAP2、为什么要使用LDAP3、LDAP 的特点4、LDAP常用关键字5、LDAP的objectClass6、LADP使用场景 1.2 OpenLDAP介绍1、什么OpenLDAP2、OpenLDAP特点3、OpenLDAP的组件 2 OpenLDAP安装3 简单使用3.1 创建用户1、创建ou2、创建Group 3、创建…

来成都的国际数字影像产业园,开启文创产业园之旅

走进位于成都金牛区福堤路的国际数字影像产业园&#xff0c;仿佛置身于一个充满创意与活力的场域。这里是成都数字产业的聚集地&#xff0c;汇聚了上百家数字媒体相关企业&#xff0c;为成都文创产业注入了新的活力。在这里&#xff0c;你可以感受到浓厚的创新氛围&#xff0c;…