当前位置:网站首页>LeetCode:124. 二叉树中的最大路径和
LeetCode:124. 二叉树中的最大路径和
2022-07-06 08:44:00 【Bertil】
路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。
路径和 是路径中各节点值的总和。
给你一个二叉树的根节点 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 * 10^4]
- -1000 <= Node.val <= 1000
解题思路
1.首先遍历左右子树的深度,当前节点往下走的最大值分三种情况:
- 往左走:当前节点+L(左子树的最大深度)
- 往右走:当前节点+R(右子树的最大深度)
- 不走:当前节点如果为负值,直接返回0
2.然后定义最大路径和ans为根节点+左子树+右子树的深度最大值
3.最后,递归完成后直接返回最大路径和ans即可
代码
/** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right) * } */
/** * @param {TreeNode} root * @return {number} */
var maxPathSum = function(root) {
let ans = -9999;
dfs(root);
return ans;
// 从当前节点往下走
function dfs(root) {
if(!root) return 0;
// 遍历左子树的深度
let left = dfs(root.left);
// 遍历右子树的深度
let right = dfs(root.right);
// 更新路径的最大值
ans = Math.max(ans, root.val + left + right);
// 返回从当前节点往下走的最大值
return Math.max(0, Math.max(left, right) + root.val);
}
};
边栏推荐
- 704 binary search
- poi追加写EXCEL文件
- Light of domestic games destroyed by cracking
- Leetcode question brushing (5.31) string
- Purpose of computer F1-F12
- Deep analysis of C language pointer
- Screenshot in win10 system, win+prtsc save location
- 2022.02.13 - 238. Maximum number of "balloons"
- Function coritization
- 广州推进儿童友好城市建设,将探索学校周边200米设安全区域
猜你喜欢
深度剖析C语言指针
FairGuard游戏加固:游戏出海热潮下,游戏安全面临新挑战
【MySQL】日志
MySQL learning record 11jdbcstatement object, SQL injection problem and Preparedstatement object
marathon-envs项目环境配置(强化学习模仿参考动作)
Beijing invitation media
Precise query of tree tree
Excellent software testers have these abilities
【MySQL】鎖
Navicat premium create MySQL create stored procedure
随机推荐
Current situation and trend of character animation
Mobile phones and computers on the same LAN access each other, IIS settings
Marathon envs project environment configuration (strengthen learning and imitate reference actions)
软件压力测试常见流程有哪些?专业出具软件测试报告公司分享
可变长参数
【ROS】usb_cam相机标定
Chrome浏览器的crash问题
Bottom up - physical layer
sys. argv
TP-LINK enterprise router PPTP configuration
Research Report on Market Research and investment strategy of microcrystalline graphite materials in China (2022 Edition)
C language double pointer -- classic question type
游戏解包的危害及资源加密的重要性
Shift Operators
被破解毁掉的国产游戏之光
tree树的精准查询
China dihydrolaurenol market forecast and investment strategy report (2022 Edition)
R language ggplot2 visualization, custom ggplot2 visualization image legend background color of legend
Purpose of computer F1-F12
TP-LINK 企业路由器 PPTP 配置