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

网络公司企业文化标语四川自助seo建站

网络公司企业文化标语,四川自助seo建站,兰州网站建设方案,青岛移动网站建设题目 在二叉树中将路径定义为顺着节点之间的连接从任意一个节点开始到达任意一个节点所经过的所有节点。路径中至少包含一个节点,不一定经过二叉树的根节点,也不一定经过叶节点。给定非空的一棵二叉树,请求出二叉树所有路径上节点值之和的最…

题目

在二叉树中将路径定义为顺着节点之间的连接从任意一个节点开始到达任意一个节点所经过的所有节点。路径中至少包含一个节点,不一定经过二叉树的根节点,也不一定经过叶节点。给定非空的一棵二叉树,请求出二叉树所有路径上节点值之和的最大值。例如,在如图8.6所示的二叉树中,从节点15开始经过节点20到达节点7的路径的节点值之和为42,是节点值之和最大的路径。
在这里插入图片描述

分析

这个题目中二叉树路径的定义又和前面的不同。这里的路径最主要的特点是路径有可能同时经过一个节点的左右子节点。例如,在图8.6中,一条路径可以经过节点15、节点20和节点7,即节点20的左子节点15和右子节点7同时在一条路径上。当然,路径也可以不同时经过一个节点的左右子节点。例如,在图8.6中,一条路径可以经过节点-9、节点20、节点15和节点-3。

也就是说,当路径到达某个节点时,该路径既可以前往它的左子树,也可以前往它的右子树。但如果路径同时经过它的左右子树,那么就不能经过它的父节点。

由于路径可能只经过左子树或右子树而不经过根节点,为了求得二叉树的路径上节点值之和的最大值,需要先求出左右子树中路径节点值之和的最大值(左右子树中的路径不经过当前节点),再求出经过根节点的路径节点值之和的最大值,最后对三者进行比较得到最大值。由于需要先求出左右子树的路径节点值之和的最大值,再求根节点,这看起来就是后序遍历。

public class Test {public static void main(String[] args) {TreeNode node_9 = new TreeNode(-9);TreeNode node4 = new TreeNode(4);TreeNode node20 = new TreeNode(20);TreeNode node15 = new TreeNode(15);TreeNode node7 = new TreeNode(7);TreeNode node_3 = new TreeNode(-3);node_9.left = node4;node_9.right = node20;node20.left = node15;node20.right = node7;node15.left = node_3;int result = maxPathSum(node_9);System.out.println(result);}public static int maxPathSum(TreeNode root) {int[] maxSum = {Integer.MIN_VALUE};dfs(root, maxSum);return maxSum[0];}private static int dfs(TreeNode root, int[] maxSum) {if (root == null) {return 0;}int[] maxSumLeft = {Integer.MIN_VALUE};int left = Math.max(0, dfs(root.left, maxSumLeft));int[] maxSumRight = {Integer.MIN_VALUE};int right = Math.max(0, dfs(root.right, maxSumRight));// 先递归调用函数dfs求得左右子树的路径节点值之和的最大值maxSumLeft及maxSumRight,再求出经过当前节点root的路径的节点值之和的最大值,那么参数maxSum就是这3个值的最大值。maxSum[0] = Math.max(maxSumLeft[0], maxSumRight[0]);maxSum[0] = Math.max(maxSum[0], root.val + left + right);// 先,left代表左树,right代表右树return root.val + Math.max(left, right);// 后,是子树的行为,不是本身这个节点的行为}
}
http://www.dinnco.com/news/40935.html

相关文章:

  • 沈阳做网站多少钱如何开发一个网站
  • 北京企业网站案例今天重大新闻
  • 信息流推广的竞价机制是优化法治化营商环境
  • 百度做网站吗深圳网站建设资讯
  • 做现货黄金的金融网站高德北斗导航
  • 郑州建材公司网站建设手机360优化大师官网
  • 苏州相城区最新楼盘价格泉州网站建设优化
  • 服务外包下的网站开发百度公司总部地址
  • 微商网站建设关键词点击优化工具
  • 青岛做网站推广公司哪家好seo博客
  • 泰州网站建设品牌营销成功案例
  • 企业网站建设国内外差异百度链接提交工具
  • php视频网站开发实战推广互联网营销
  • 30岁做网站编辑百度推广一级代理商名单
  • 网站开发的软件有哪些seo诊断方案
  • html网站开发实例视频营销型企业网站诊断
  • 酒店网站的设计摘要微信运营
  • 日本平面设计大师个人网站网站下载
  • 邮箱网站架构网络营销推广目标
  • 保定市做网站公司地址电话杭州搜索引擎推广排名技术
  • 对电子商务网站建设与管理的理解手机网页链接制作
  • 重庆网站开发价格app注册推广平台
  • 二级域名做网站专业搜索引擎seo技术公司
  • 无锡网站制作启航好竞价托管多少钱一个月
  • 开发网站需要多少资金平台软件定制开发
  • 网站建设个人年终总结东莞网站制作的公司
  • 外发加工网磨字海城seo网站排名优化推广
  • 同江佳木斯网站建设seo推广
  • 多用户商城系统网站建设百度店铺
  • 什么是指定网站的域名电子商务沙盘seo关键词