leetcode做题笔记124. 二叉树中的最大路径和

news/2024/7/20 20:53:35 标签: leetcode, 笔记, 深度优先

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

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

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

思路一:递归

int ans;
int dfs(struct TreeNode*root){
    if(root==NULL)return 0;
    int left = fmax(0,dfs(root->left));
    int right = fmax(0,dfs(root->right));
    ans = fmax(ans,left+right+root->val);

    return fmax(left,right)+root->val;

}



int maxPathSum(struct TreeNode* root){ 
    ans = INT_MIN;
    dfs(root);
    return ans;
}

分析:

本题要向下不断递归二叉树,将左右子树中最大值设为ans最后输出ans即最大路径和,ans先设置为int_min方便后续操作,dfs函数返回fmax(left,right)+root->val;

总结:

本题考察递归查找路径问题,将二叉树递归调用左右子树操作熟悉后可解决


http://www.niftyadmin.cn/n/4994537.html

相关文章

Nginx实现自签名SSL证书生成与配置

Nginx实现自签名SSL证书生成与配置 一、Nginx实现自签名SSL证书生成与配置1.名词介绍2.生成私钥3.生成公钥4.生成解密的私钥key5.签名生成证书6.配置证书并验证 二、总结 一、Nginx实现自签名SSL证书生成与配置 1.名词介绍 (1)key 私钥 明文–自己生成…

编译链接实战(13)认识GOT表

GOT(Global Offset Table)是一个全局偏移表,用于动态链接的过程中解决全局符号的地址引用。它是在可执行文件或共享库加载到内存时由动态链接器填充的数据结构。 当一个程序需要访问一个全局变量或调用一个外部函数时,编译器无法…

leetcode:1710. 卡车上的最大单元数(python3解法)

难度:简单 请你将一些箱子装在 一辆卡车 上。给你一个二维数组 boxTypes ,其中 boxTypes[i] [numberOfBoxesi, numberOfUnitsPerBoxi] : numberOfBoxesi 是类型 i 的箱子的数量。numberOfUnitsPerBoxi 是类型 i 每个箱子可以装载的单元数量。…

android 系统开发

android 系统 android_C代码开发 Android Skia2D引擎库 深度优化的算法、完善的渲染体系和精炼的代码框架 Android图形显示系统 AndroidlibJpeg库解码OpenCL优化 adb 等工具 adb下载地址 https://dl.google.com/android/repository/platform-tools-latest-linux.zip ht…

leetcode235. 二叉搜索树的最近公共祖先(java)

二叉搜索树的最近公共祖先 题目描述递归 剪枝代码演示: 上期经典 题目描述 难度 - 中等 LC235 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q…

【实操干货】如何开始用Qt Widgets编程?(四)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 在本文中&#xff0…

求组合数IV

思路: (1)对于非取模类型,卢卡斯定理,费马小定理失效,应直接计算。 (2)考虑将C(a,b) a!/(b!*(a - b)!) 进行质因子分解。 (3)由于数据较小,可…

前端Vue仿企查查 天眼查知识产权标准信息列表组件

引入Vue仿企查查天眼查知识产权标准信息列表组件 随着技术的不断发展,传统的开发方式使得系统的复杂度越来越高。在传统开发过程中,一个小小的改动或者一个小功能的增加可能会导致整体逻辑的修改,造成牵一发而动全身的情况。为了解决这个问题…