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

二叉树的直径,二叉树中的最大路径和

这两道题比较类似,可以拿出来分析下相同点。

二叉树的直径

Code

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def diameterOfBinaryTree(self, root: Optional[TreeNode]) -> int:## 针对root节点,直径可能是 左→root→右;也可能是左→root→上 / 右→root→上self.max_value = float('-inf')def postordersearch(root):if not root:return 0left_height = postordersearch(root.left)right_height = postordersearch(root.right)cur_root = max(left_height, right_height) + 1       ### 从左/右到root的最大长度 左→root/右→rootself.max_value = max(self.max_value, left_height + right_height)    ### 记录每个节点下 其左子树经过root到右子树的路径长度return cur_rootpostordersearch(root)return self.max_value

二叉树中的最大路径和

Code

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def maxPathSum(self, root: Optional[TreeNode]) -> int:### 与求二叉树的直径思路差不多,前者是求最长的路径;这里是求最大的路径和def get_path(root):### 后序遍历,每个节点存储其从下到上到当前节点时的路径最大和if not root:        ### 空节点没有值return 0left_sum, right_sum = 0, 0left_sum = get_path(root.left)right_sum = get_path(root.right)root_val = max(left_sum, right_sum, 0) + root.val   ### 如果是负值的话则丢弃那些树枝,负数只会越加越小self.max_value = max(self.max_value, root_val, left_sum + root.val + right_sum)     ## root_val表示不经过根节点,只有左→中/右→中## left_sum + root.val + right_sum 表示经过根节点,是左→中→右的情况return root_valself.max_value = float('-inf')get_path(root)return self.max_value

http://www.dtcms.com/a/524421.html

相关文章:

  • 【无标题】Verilog中generate的用法
  • 代码随想录 105.从前序与中序遍历构造二叉树
  • 微信网站公司用wordpress还是用框架
  • 电子电气架构 --- 汽车软件开发基础V模型
  • 国产数据库替代MongoDB的技术实践过程:金仓多模数据库在电子证照系统中的深度应用
  • 【MATLAB例程】自适应渐消卡尔曼滤波,背景为二维雷达目标跟踪,基于扩展卡尔曼(EKF)|附完整代码的下载链接
  • 【开题答辩全过程】以 博客系统的设计与实现为例,包含答辩的问题和答案
  • 基于 OpenHarmony 分布式数据服务重构 BCI 脑机接口通信系统
  • 投资交易网站开发商标图案大全大图 logo
  • 甘肃住房和城乡建设局网站宁波公司建网站哪家好
  • LangChain第三页【操作指南】_【如何创建一个自定义对话模型类】翻译完成
  • 专题:2025AI+直播+私域电商行业洞察报告|附200+份报告PDF、数据仪表盘汇总下载
  • 贝锐蒲公英R300S升级:内置三网通卡,联通、电信、移动智能切换
  • 拼接显示技术方案介绍:重塑视觉体验,赋能多元场景
  • 个人博客网站的建设结构图域名解析后怎么建网站
  • python做网站项目购物平台推荐
  • C语言需要掌握的基础知识点之链表
  • 学习Docker前提:多环境安装Docker
  • SpringBoot实战(三十九)集成 FreeMarker
  • 除自身以外数组的乘积(二)
  • 指针数组和指针数组区别
  • 怎么用云主机做网站天津市建设厅注册中心网站
  • flutter使用getx做一个todolist
  • 威海市住房和城乡建设局官方网站广东省公路建设有限公司网站
  • 5.深度学习:从Softmax到模型评估
  • 吴恩达深度学习课程一:神经网络和深度学习 第三周:浅层神经网络(二)
  • 在优豆云免费云服务器上搭建与配置Apache的实践笔记
  • 网站开发设计是前端吗伯维网站建设
  • 成都seo优化公司搜素引擎优化
  • Cesium中的倒立四棱锥:从几何结构到交互式3D可视化