【力扣100】543.二叉树的直径

添加链接描述

# 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 __init__(self):self.max = 0def diameterOfBinaryTree(self, root: TreeNode) -> int:self.depth(root)return self.maxdef depth(self, root):if not root:return 0l = self.depth(root.left)r = self.depth(root.right)'''每个结点都要去判断左子树+右子树的高度是否大于self.max,更新最大值'''self.max = max(self.max, l+r)# 返回的是高度return max(l, r) + 1

思路:

  1. 典型的求树高,然后把左右子树树高相加的题目
    但是需要注意一个情况:
  • 最大直径可能并不是左右子树相加,也可能是一颗子树中的最大直径
    在这里插入图片描述
  1. 所以需要引入一个全局变量,记录每一个节点的最大直径
  2. 添加__init__(self)函数,然后把max值作为全局变量
  3. 每次比较self.max = max(self.max, l+r)这样才能不遗漏最大值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/288380.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python打造简单而强大的聊天机器人:详解与实例代码

更多资料获取 📚 个人网站:ipengtao.com 聊天机器人在现代应用中扮演着重要的角色,能够与用户进行自然语言交互。本篇博客将带领读者通过Python,使用自然语言处理库构建一个简单而强大的聊天机器人。我们将深入讨论处理用户输入、…

如何在Ubuntu系统中安装VNC并结合内网穿透实现远程访问桌面

文章目录 前言1. ubuntu安装VNC2. 设置vnc开机启动3. windows 安装VNC viewer连接工具4. 内网穿透4.1 安装cpolar【支持使用一键脚本命令安装】4.2 创建隧道映射4.3 测试公网远程访问 5. 配置固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址5.3 测试…

Linux系统之部署Linux管理面板1Panel

一、介绍 1.1简介 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。 1.2特点 快速建站:深度集成 Wordpress 和 Halo,域名绑定、SSL 证书配置等一键搞定; 高效管理:通过 Web 端轻松管理 Linux 服务器,包括应用管…

ros2机器人在gazebo中移动方案

原文连接Gazebo - Docs: Moving the robot (gazebosim.org) 很重要的地方:使用虚拟机运行Ubuntu的时候,需要关闭”加速3D图形“的那个选项,否则gazebo无法正常显示。 Moving the robot(使用命令移动机器人示例) In t…

基于AWD攻防对Web漏洞的研究

写在前面 Copyright © [2023] [Myon⁶]. All rights reserved. 基于awd攻防环境和xshell远程连接,配合kali linux渗透系统、蚁剑、D盾、河马、Seay代码审计系统等,演示现实中网站可能存在的漏洞,对网站进行漏洞扫描,渗透测…

【Jenkins】远程API接口介绍

Jenkins 为其功能提供了远程访问 API。目前它支持: REST API 风格,包含xml和json格式Python 包装接口Java 包装接口Ruby 包装接口 远程访问 API 以 REST 样式提供。也就是说,没有所有功能的单一入口点,而是在“.../api/” URL 下…

软件测试实现Finddler的手机抓包过程

Fiddler的手机抓包过程 1、启动Fiddler 打开菜单栏中的 Tools > Fiddler Options,打开“Fiddler Options”对话框: 2、在Fiddler Options”对话框 切换到“Connections”选项卡,然后勾选“Allow romote computers to connect”后面的复选…

论文报告公式序号右对齐技巧

最近在写报告,感觉这个方法很不错,所以记录一下。 1.添加一个1行3列的表格,将公式序号放在中间表格与右边表格中,公式居中,序号右对齐。 2.将边框去掉,选择无边框。 3.得出结果 结束!&#xff…

司铭宇老师:销售经理培训课程内容

销售经理是销售团队的核心领导,他们的能力和素质直接影响到整个团队的绩效。针对销售经理的培训课程内容应涵盖多个方面,旨在提升销售经理的领导力、团队管理能力、沟通技巧和市场分析能力。以下是一篇关于针对销售经理的培训课程内容的文章,…

Golang(壹)

爱情不需要华丽的言语,只需要默默的行动。 简介 应用领域: 下载vscode 使用vscode Go下载 - Go语言中文网 - Golang中文社区 下载sdk 解压到文件中,打开sdk解压文件 穿插dos操作系统知识点: 测试go语言环境 看到vscode 的目录结…

实验一、进程创建、调度与撤消

实验一、进程创建、调度与撤消 一、目的 通过进程的创建和调度的设计来达到如下目的: 加深对进程概念的理解,明确进程和程序的区别;进一步认识并发执行的概念,区别顺序执行和并发执行;深入了解系统如何组织进程&…

Mysql日志:undo log、redo log 、bin log、两阶段提交

借鉴: https://blog.csdn.net/Huangjiazhen711/article/details/127900821 https://blog.csdn.net/qq_42757463/article/details/132618759 https://blog.csdn.net/weixin_62458944/article/details/132721814 https://blog.csdn.net/m0_73311735/article/details/1…