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

力扣 hot100 Day52

124. 二叉树中的最大路径和

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

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

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

//自己写的
class Solution {
public:int maxpasssum(TreeNode* root,int& maxtmp){if(!root) return 0;int leftmaxsum = max(maxpasssum(root->left,maxtmp),0);int rightmaxsum = max(maxpasssum(root->right,maxtmp),0);maxtmp = max(maxtmp,leftmaxsum+rightmaxsum+root->val);return root->val+max(leftmaxsum,rightmaxsum);}int maxPathSum(TreeNode* root) {int maxtmp = INT_MIN;maxpasssum(root,maxtmp);return maxtmp;        }
};

逻辑有点像求二叉树的最大深度,都是需要在递归过程中间进行判断再回溯

本题需要考虑的是,对于递归到的根节点来说,最大路径和可能并不经过该节点,所以需要引入一个maxtmp进行存储。

这里maxpasssum返回值含义是,目前经过该节点的最大单向路径和(不横跨左右子树),left/rightmaxsum则为其左右子树返回的对应值与0的最大值(返回值可能小于0,此时取零相当于不考虑加上这条分支了)

由此可以递推对于任意节点,新出现的可能最大路径和为leftmaxsum+rightmaxsum+root->val,实时比较更新就可以得到最终结果了。

http://www.dtcms.com/a/292243.html

相关文章:

  • LeetCode 633.平方数之和
  • XML高效处理类 - 专为Office文档XML处理优化
  • Mysql-场景篇-2-线上高频访问的Mysql表,如何在线修改表结构影响最小?-1--Mysql8.0版本后的INSTANT DDL方案(推荐)
  • 【MySQL】MySQL基本概念
  • NISP-PTE基础实操——命令执行
  • MySQL高可用主从复制原理及常见问题
  • mysql_innodb_cluster_metadata源数据库
  • n1 armbian docker compose 部署aipan mysql
  • 板凳-------Mysql cookbook学习 (十二--------5)
  • vue3实现高性能pdf预览器功能可行性方案及实践(pdfjs-dist5.x插件使用及自定义修改)
  • Redis高级篇之最佳实践
  • VUE 中父级组件使用JSON.stringify 序列化子组件传递循环引用错误
  • TDengine时序数据库 详解
  • 扣子Coze智能体实战:自动化拆解抖音对标账号,输出完整分析报告(喂饭级教程)
  • STM32-SPI全双工同步通信
  • 什么是分布式事务,分布式事务的解决方案有哪些?
  • PyTorch 模型开发全栈指南:从定义、修改到保存的完整闭环
  • 自编码器表征学习:重构误差与隐空间拓扑结构的深度解析
  • vue2.0 + elementui + i18n:实现多语言功能
  • 智能Agent场景实战指南 Day 18:Agent决策树与规划能力
  • SpringBoot+Mybatis+MySQL+Vue+ElementUI前后端分离版:权限管理(三)
  • Class10简洁实现
  • 图解Spring的循环依赖
  • 2025茶吧机语音控制集成方案
  • 深入解析Hadoop中的推测执行:原理、算法与策略
  • 【华为机试】684. 冗余连接
  • Python编程进阶知识之第三课处理数据(numpy)
  • LSTM+Transformer炸裂创新 精准度至95.65%
  • 【C++】复习重点-汇总2-面向对象(三大特性、类/对象、构造函数、继承与派生、多态、抽象类、this/对象指针、友元、运算符重载、static、类/结构体)
  • vscode gdb调试c语言过程