[LeetCode]124. 二叉树中的最大路径和(java实现)递归
[LeetCode]124. 二叉树中的最大路径和(java实现)递归
- 1. 题目
- 2. 读题(需要重点注意的东西)
- 3. 解法
- 4. 可能有帮助的前置习题
- 5. 所用到的数据结构与算法思想
- 6. 总结
1. 题目
2. 读题(需要重点注意的东西)
思路(递归):
最大路径和
枚举每个节点p,经过该节点的最大路径和
有如下四种情况:
p.val (左子树和右子树的最大路径均小于0)
p.val + left(右子树的最大路径小于0)
p.val + right (左子树的最大路径小于0)
p.val + right + left(左子树和右子树的最大路径均大于0)
p.val为当前节点的值,left为p的左子树的路径最大值,right为p的右子树的路径最大值
沿父节点-子节点连接
:即只能从该节点向上连接,如当前节点是15,那么可能存在红色路径,也可能存在蓝色路径;
但是绝不会是这样的路径
因此,当前节点作为父节点的一个子节点和父节点连接的话则只能取!!单边!!的最大值
,即只能存在要么从左孩子而来的路径,要么从右孩子而来的一条路径
只有当前节点
当前节点+左子树
当前节点+右子树
3. 解法
---------------------------------------------------解法---------------------------------------------------:
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/
class Solution {int res = Integer.MIN_VALUE;public int maxPathSum(TreeNode root) {dfs(root);return res;}// dfs的作用是返回子树一边的最大路径和private int dfs(TreeNode root){if(root == null) return 0;// 左孩子的最大和int left = Math.max(0,dfs(root.left));// 右孩子的最大和int right = Math.max(0,dfs(root.right));// 当前节点的最大和,!!!注意此处需要两边的最大和!!!res = Math.max(res,root.val + left + right);// 返回以root为根节点的单边的最大路径和return Math.max(left,right) + root.val;}
}
可能存在的问题:
4. 可能有帮助的前置习题
5. 所用到的数据结构与算法思想
6. 总结
[LeetCode]124. 二叉树中的最大路径和(java实现)递归相关推荐
- Leetcode 124.二叉树中的最大路径和
124.二叉树中的最大路径和 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定经过根节点. 示例 1: 输入: ...
- Java实现 LeetCode 124 二叉树中的最大路径和
124. 二叉树中的最大路径和 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定经过根节点. 示例 1: 输入: ...
- leetcode 124 二叉树中的最大路径和 C语言
题目 leetcode 124 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定经过根节点. 代码 int ma ...
- LeetCode 124. 二叉树中的最大路径和(DFS)
文章目录 1. 题目信息 2. 解题 1. 题目信息 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定经过根节点 ...
- Leetcode 124.二叉树中的最大路径
解法1 解法 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNo ...
- 124. 二叉树中的最大路径和
124. 二叉树中的最大路径和: 题目链接 :124. 二叉树中的最大路径和 题目: 路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列.同一个节点在一条路径序列中 至多出 ...
- 【LeetCode笔记】124. 二叉树中的最大路径和(Java、二叉树、DFS)
文章目录 题目描述 思路 & 代码 更新版 题目描述 好家伙我可太激动了,第一次光速A困难题. 应该是因为写过类似的二叉树的直径,不过这道倒是属于简单题.. 面试常考题,刷codetop看到了 ...
- 小黑感冒了蒸了桑拿搓了澡的喜茶leetcode之旅:124. 二叉树中的最大路径和
递归+最大子段和(python) # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, ...
- 124. Binary Tree Maximum Path Sum 二叉树中的最大路径和
Title 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定经过根节点. 示例 1: 输入: [1,2,3] 1 ...
最新文章
- 微信小程序如何使用iconfont阿里巴巴图标库?
- [ADB]ADB(Android Debug Bridge)简介及基础(不包含命令)
- wordpress在新窗口打开留言者链接
- 用Excel三天做出的可视化报告,我用这个工具只用了2小时
- java.lang.IllegalArgumentException: Request header is too large
- 执行cmd并获得结果_用JAVA执行CMD命令备份PG数据库,解决需要口令的问题
- mfc 固定编辑框输入上限和下限_S7200smart的模拟量输入输出
- Kejin Game UVALive - 7264 (最大流转最小割)
- 用计算机分析卫星云图 进行实时天气,卫星云图,气象卫星云图,卫星云图高清实时滚动播放 - 围观天气...
- 加速数据无限超高速空间免费虚拟主机无限大小 支持SSL
- c语言题库字母顺序,C语言题库(带答案)-排版-
- 计算机综合应用教材,系统测评计算机综合应用技能期末作业教材.doc
- 计算机win10+上锁,win10系统给电脑屏幕上锁的操作方法
- 极客时间、慕课网看课感悟
- 用Vue-cli从头搭建项目
- python matplotlib三维画图、二维画图常用命令总结
- JavaScript实现模板生成大量数据的方法(附代码)
- 7 进度指示器(LinearProgressIndicator、CircularProgressIndicator)
- PHP调用ZPL斑马指令 打印二维码标签
- 寒江独钓 第三章 串口的过滤
热门文章
- python颜值打分器--你的长相能打几分
- Python 两个乒乓球队进行比赛,请编程序找出两队参赛对手的名单,不用库算法
- 【Spark】Spark报错:Could not locate executable null\bin\winutils.exe in the Hadoop binaries
- C++跳跃游戏(青蛙跳)
- Unity 剧情类游戏基础脚本
- 未知的漏洞才是最可怕的存在之漏洞零日
- EPUB、CAJ 、PDF 格式的区别,Mac上有什么好用的epub阅读器
- 大屏---Echart之雷达图
- 如何设计一个 A/B test --来自腾讯数据分析师的分享
- newifi3 web认证_关于wifi portal认证--为浏览器添加wifi认证功能