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

JAVA算法练习题day31

40.二叉树的直径

很有意思的一道题

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def diameterOfBinaryTree(self, root):""":type root: Optional[TreeNode]:rtype: int"""#这样想是错误的:直径 = 左子树最大高度 + 右子树最大高度 + 1(根节点)#因为会有:某个子树内部 存在最长直径作为答案#写一个求最大高度的函数#再来:好像不能把求左右高度给割裂开,因为这样只能得到根节点下的左右子树最大高度,无法得到其他子树左右子树的最大高度。我们想要记下回溯时候的高度结果,并处理它作为更新ANS的依据。if root.left is None and root.right is None:return 0self.max_diameter = 0  # 用类变量记录最大直径(初始为0)# 递归计算高度的同时,更新最大直径def getHeight(root):if root is None:return 0#计算左右子树高度lh = getHeight(root.left)rh = getHeight(root.right)cur_diameter = lh+rhif cur_diameter > self.max_diameter:self.max_diameter = cur_diameterreturn max(lh,rh)+1getHeight(root)return self.max_diameter

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

相关文章:

  • 20g虚拟主机建设网站朔州企业网站建设
  • 大模型-扩散模型(Diffusion Model)原理讲解
  • 反欺诈模型升级:如何从“抓坏人”到“提前阻止坏人作案”?
  • 烟台网站seo服务南昌市市政建设有限公司
  • 系统集成项目管理工程师:【第一章 信息化发展】
  • 网站导航栏最多可以做几个制作手机wap网站工具
  • 离石做网站磁力搜索引擎torrentkitty
  • 上线了做网站要钱wordpress设置注册页面
  • 济南网站建设(选聚搜网络)建设工程报建网站查询
  • 江苏建筑网站建设网站开发行业代码
  • 上海普陀门户网站sem是什么职业岗位
  • 机械网站建设公司推荐高端网约车
  • 抖音私密账号显示IP属地吗?能更改IP么?
  • Sqoop的安装与配置
  • 样式网站商城网站微信支付接口申请流程
  • 量子密钥分发在BFF层的*认证实验
  • 永州市住房和城乡建设厅网站品牌型网站案例
  • MATLAB循环控制:break和continue语句详解
  • 历史网站怎么做wordpress文字怎么做超级链接
  • 水利建设管理司网站广州企业网站建设报价
  • Python美股量化交易填坑记录——3.盈透(Interactive Brokers)证券API接口
  • 网站有访问量 为什么没有询盘淘宝客的网站怎么做的
  • 力扣:9.回文数の题解
  • 北京做兼职网站浙江省龙泉市建设局网站
  • UE5 小知识点 —— 11 - 下坠
  • 网站的二次开发是什么意思高端网站建设加盟
  • TCN (时序卷积网络) 从零实现
  • 基于视觉摄像头的人体动作识别技术详解
  • 快速了解并使用pandas库
  • 生成式人工智能在教育中的应用:法律挑战、伦理困境与综合治理框架