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

2025年- H55-Lc163--124. 二叉树的最大路径和(深搜)--Java版

1.题目描述

在这里插入图片描述

2.思路

(1)至少要包含一个节点。所以就是以当前节点为根节点的左右孩子
(2)一个节点不能经过两次,子树(左右孩子)的和交给递归去做。
递归公式:sum=自己+左+右
递归返回结果:output=自己+max(左,右)
递归过程,找到maxsum=max(maxsum,sum)

3.代码实现

 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;}}public class H124maxPathSum {int ans=Integer.MIN_VALUE;public int maxPathSum(TreeNode root) {//1.将每个节点去进行递归dfs(root);return ans;}int dfs(TreeNode root){if(root==null){return 0;}int left=dfs(root.left);int right=dfs(root.right);
//         当前节点作为“顶点”,同时连接左子树和右子树时,路径和是多少?
//
//         然后更新全局最大路径和 ans。//更新“当前整棵树最大路径和”ans=Math.max(left+right+root.val,ans);//当前节点的左右子树选取最大的那个,如果右负数的我们直接置于0//dfans 其实是“当前节点能选择的左右子树中路径贡献最大的一边”。////因为不能从当前节点同时向左和右扩展(那样就不算是一条路径了),所以只能选一边。int dfans=Math.max(left,right);//选当前节点的左右子树选取最大的那个,然后再加上根节点return Math.max(dfans+ root.val,0);
//         当前节点能向上传递给父节点的最大路径贡献是多少?
//
//         如果左右都为负数,直接返回 0。
//
//         否则返回 当前节点值 + 左/右子树中较大的贡献。}
}

相关文章:

  • 以知识管理赋能 DevSecOps,加速关键领域软件自主演进
  • 字符串day7
  • 11.12 LangGraph全局共享状态实战:200ms实现50+仓库AI协同,效率飙升!
  • 科技赋能建筑行业,智能楼宇自控系统崭露头角成发展新势力
  • 拆解汽车HMI设计:如何用3D可视化提升驾驶安全感?
  • 服务发现Nacos
  • CMake指令:file()
  • Unity Sherpa-onnx 笔记
  • K8s入门(4)Kubernetes的技术演进
  • VR三维数字空间还原
  • 卓力达蚀刻工艺:精密制造的跨行业赋能者
  • 光电赋能低空场景,灵途科技助力无人机持续升级
  • Mongodb | 基于Springboot开发综合社交网络应用的项目案例(中英)
  • RK3568 OH5.1 镜像烧录
  • C++将地址转换为字符串
  • 行为型:中介者模式
  • Python requests
  • 文件类型汇总
  • Liunx部署ES单机集群
  • C# 数组与字符串:全面解析与应用实践
  • 前端开发培训学校/网站seo推广招聘
  • 品牌的手机网站制作/青岛网站seo分析
  • 巴彦淖尔专业做网站的/关键词挖掘
  • 市住房和城乡建设局网站/永久免费的建站系统有哪些
  • 网站建设智能优化/做任务赚佣金一单10块
  • 如何搭建门户网站/怎么自己创建网站