千家信息网

怎样分析python二叉树的最大路径和

发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,今天就跟大家聊聊有关怎样分析python二叉树的最大路径和,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。给定一个非空二叉树,返回其最大路径和。
千家信息网最后更新 2025年01月25日怎样分析python二叉树的最大路径和

今天就跟大家聊聊有关怎样分析python二叉树的最大路径和,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

给定一个非空二叉树,返回其最大路径和。

本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。

示例 1:

输入: [1,2,3]

1
/ \
2 3

输出: 6

示例 2:

输入: [-10,9,20,null,null,15,7]

-10
/ \
9 20
/ \
15 7

输出: 42

解题思路:

对于二叉树问题优先想到递归,因为划分子问题比较容易,最大路径和隐含问题是路径连续

1,由于可能含根,可能不含根,所以最大和为

max(根的值,左分支含根最大和,左分支含根最大和+根,右分支含根最大和,右分支含根最大和+根,左分支含根最大和+根+右分支含根最大和,左分支不含根最大和,右分支不含根最大和)

2,上述问题包含含根(单边)最大和子问题,求解为

max(根的值,根的值+左含根最大和,根的值+右含根最大和)

注意不包含:左含根最大和+根的值+右含根最大和,因为路线不能有分叉

代码如下

/** * Definition for a binary tree node. * type TreeNode struct { *     Val int *     Left *TreeNode *     Right *TreeNode * } */func maxPathSum(root *TreeNode) int {    if root==nil{        return 0    }    if root.Left!=nil && root.Right!=nil{    lr:=maxPathSumRoot(root.Left)    rr:=maxPathSumRoot(root.Right)    l:=maxPathSum(root.Left)    r:=maxPathSum(root.Right)    a:=[]int{root.Val,root.Val+lr,root.Val+rr,lr,rr,root.Val+lr+rr,l,r}         return max(a)    }else if root.Left!=nil {         lr:=maxPathSumRoot(root.Left)          l:=maxPathSum(root.Left)         a:=[]int{root.Val,root.Val+lr,lr,l}         return max(a)    }else if root.Right!=nil{          rr:=maxPathSumRoot(root.Right)         r:=maxPathSum(root.Right)         a:=[]int{root.Val,root.Val+rr,rr,r}         return max(a)    }        return root.Val
}
func max(arr []int) int{ max:=-1<<31 for i:=0;i if max max=arr[i] } } return max}
func maxPathSumRoot(root *TreeNode) int { if root==nil{ return 0 } l:=maxPathSumRoot(root.Left) r:=maxPathSumRoot(root.Right) return max([]int{l+root.Val,r+root.Val,root.Val}) }

看完上述内容,你们对怎样分析python二叉树的最大路径和有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

最大 分支 路径 问题 节点 内容 分析 示例 输入 输出 代码 分子 序列 思路 更多 本题 知识 篇文章 行业 资讯 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 php配置文件 数据库 中学生关于网络安全提案 华为电脑服务器怎么关闭 网络安全终端用户应该做哪些 怎么建立数据库mysql 数据库安全管理加密系统 数据库查询最小值最大值 荒野大镖客2线上有几个服务器 国家网络安全宣传个人信息保护日 同花顺不能导出数据库 数据库建立连接错误是怎么回事 网络安全 管理办法 大学生如何增强网络安全意识作文 u8数据库配置测试连接不成功 手机数据库在哪里更新 珠海市万物互联网络科技有限公司 税务系统网络安全考题 数据库初始化啊 天津市安全局网络安全行动 网络安全规划设计书范文 服务器上下载杀毒软件可以吗 自己租游戏服务器可以吗 传奇服务器无法刷怪 员工网络安全培训pdf下载 徐汇区网络技术服务 数据库切换服务器方法 网络技术优劣 鹤岗游戏软件开发 福建南鼎网络技术 vc连接数据库增删改查
0