LeetCode hot100-40-N

543. 二叉树的直径
给你一棵二叉树的根节点,返回该树的 直径 。二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。两节点之间路径的 长度 由它们之间边数表示。

这题尝试做了一下,有几个测试案例通不过。其实想法是错的,就想从根节点开始左边深度+右边深度。实际上,比如根节点的左子节点只有一层。右子节点的左子节点和右子节点都超过两层的话,那最远的距离就不是从根节点的最远左子节点到根节点的最远右子节点了。所以得维护一个直径,看当前直径和左右加起来的谁大。

官方解法

class Solution {int ans;public int diameterOfBinaryTree(TreeNode root) {ans = 1;depth(root);return ans - 1;}public int depth(TreeNode node) {if (node == null) {return 0; // 访问到空节点了,返回0}int L = depth(node.left); // 左儿子为根的子树的深度int R = depth(node.right); // 右儿子为根的子树的深度ans = Math.max(ans, L+R+1); // 计算d_node即L+R+1 并更新ansreturn Math.max(L, R) + 1; // 返回该节点为根的子树的深度}
}作者:力扣官方题解
链接:https://leetcode.cn/problems/diameter-of-binary-tree/solutions/139683/er-cha-shu-de-zhi-jing-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

我的错误解法

class Solution {public int diameterOfBinaryTree(TreeNode root) {if (root == null) {return 0;}if (root.left == null || root.right == null) {return maxDepth(root) - 1;}return maxDepth(root.left) + maxDepth(root.right);}public int maxDepth(TreeNode root) {if (root == null) {return 0;} else {int left = maxDepth(root.left);int right = maxDepth(root.right);return Math.max(left, right) + 1;}}
}

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

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

相关文章

4.StableDiffusion各项参数解读

经过前期的努力,我想大家都已经生成了自己的第一张AI作品,但是充满了随机性,每次都是不一样的,并且有时候生成的图片效果还不是很让人满意,暂且先不要着急,先跟着本篇文章,学习一些每个选项和参…

Google Chrome GPU渲染抓包

非安全模式启动 "C:\Program Files\Google\Chrome\Application\chrome.exe" --ignore-certificate-errors --allow-running-insecure-content --disable-web-security 配置环境 set RENDERDOC_HOOK_EGL0 "C:/Program Files/Google/Chrome/Application/chrom…

Windows本地部署直播录屏利器Bililive-go并实现远程添加直播间录屏

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” 文章目录 1. Bililive-go与套件下载1.1 获取ffmpeg1.2 获取Bililive-go1.3 配置套件 2. 本地运行测试3. 录屏…

【OpenCV 基础知识 2】灰度化图片

文章目录 cvCreateImagecvCvtColor完整示例代码 cvCreateImage 使用OpenCV库在Delphi中创建一个灰度图像。让我解释一下: gray_image : cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1);cvGetSize(image): 这个函数返回给定图像(在这里是image&…

【MySQL】事务及其隔离性/隔离级别

目录 一、事务的概念 1、事务的四种特性 2、事务的作用 3、存储引擎对事务的支持 4、事务的提交方式 二、事务的启动、回滚与提交 1、准备工作:调整MySQL的默认隔离级别为最低/创建测试表 2、事务的启动、回滚与提交 3、启动事务后未commit,但是…

MVP产品设计与数据指标

MVP(minimum viable product,最小化可行产品)概念最早由埃里克莱斯提出,刊载于哈弗商业评论,并有出版物《精益创业》 和常规产品不同,MVP更侧重于对未知市场的勘测,用最小的代价接触客户的方法…

学习Nginx(一):基础

介绍 Nginx是一个高性能的HTTP和反向代理的web服务器,它的设计重点是高并发、高性能和低内存消耗。它常被用于提供静态内容、负载均衡和作为Web服务器。 Nginx具有以下功能和特点: 静态文件服务:作为一个Web服务器,Nginx可以处…

GPT-4o可以用了

方法:挂日本/新加坡的梯子就可以了,打开就会弹出以下的弹窗。不过不知道可以用多久呢? 2024/5/15

木里风景文化|基于SSM+vue的木里风景文化管理平台的设计与实现(源码+数据库+文档)

木里风景文化管理平台 目录 基于SSM+vue的木里风景文化管理平台的设计与实现 一、前言 二、系统设计 三、系统功能设计 1 系统功能模块 2 管理员功能模块 3 用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源…

精通Linux中的编辑器(非常详细!!!)

今天我们来说一下编辑器…… Linux中的编辑器 vi:是一个文本编辑器,用于撰写文档,或者开发程序。 vim:是vi的增强版功能一致,可视化效果更好一些。去鼠标化编辑更加方便可定制化 注意:vim编辑器是一个模式…

信息系统项目管理师——十大管理过程输入、工具和技术、输出(论文篇)一

一、项目整合管理 制定项目章程 在项目管理中,制定项目章程是一个关键的初始过程,它正式授权项目的开始并为项目设定高层次的方向。项目章程的编制涉及特定的输入、采用的工具和技术,以及产生的输出。以下是这些方面的详细说明:…

如何避免父组件重新渲染,子组件也跟着渲染

当父组件重新渲染时,通常情况下,子组件也会跟着重新渲染。但是,有一些方法可以避免这种情况发生,让子组件在父组件重新渲染时不进行渲染。以下是五种常见的方法: 使用 React.memo 或 PureComponent: 使用 …

前端 JS 经典:为什么需要模块化

首先,自我评定一下,一个 js 文件,各位兄弟,最多能掌控多少行,什么意思呢,就是说,一个 js 文件在多少行之内,你是可以清楚的知道这个 JS 实现了哪些业务逻辑,并对这些业务…

专项资金!2024年自贡市高新技术企业奖励政策及申报各类补贴政策汇总

第一章 总 则 第一条 为积极应对经济发展新常态,加快培育工业发展新动力,持续推动产业结构优化升级,实现工业经济平稳较快增长,结合我县实际,制定本扶持激励办法。 第二条 人民政府将继续建立工业企业发展引导专项…

全知人工智能的黎明:OpenAI 革命性的 GPT-4o 揭晓

全知人工智能的黎明:OpenAI 革命性的 GPT-4o 揭晓 在一项突破性的公告中,OpenAI 推出了其最新的旗舰人工智能模型 GPT-4o,该模型有望彻底改变我们与人工智能交互的方式。这种无所不知的人工智能模型拥有前所未有的能力,从实时翻译…

Redis-持久化操作-AOF

持久化操作-AOF AOF是什么? 以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只允许加文 件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之…

python:使用pip安装wxPython

1、找到python安装路径的Scripts文件夹,复制文件夹地址 2、进入cmd,粘贴地址,在后面加上\pip install wxPython 完整示例: C:\PythonXX\Scripts\pip install wxPython 回车运行,等待下载安装完成。 如果报错&…

电力系统潮流计算的计算机算法(四)——PQ快速解耦潮流算法

本篇为本科课程《电力系统稳态分析》的笔记。 本篇为这一章的第四篇笔记。上一篇传送门。 潮流计算的快速解耦法 牛顿-拉夫逊法潮流计算,主要的工作量在于形成雅可比矩阵和求解修正方程。由于雅可比矩阵的阶数为nm-1,约为节点总数的两倍,非…

Axure10_win安装教程(安装、汉化、授权码,去弹窗)

1.下载Axure10 链接:https://pan.baidu.com/s/1fc8Bgyic8Ct__1IOv-afUg 提取码:9qew 2.安装Axure10 因为我的电脑是Windows操作系统,所以我下载的AxureRP-Setup-Beta v10.0.0.3816 (Win).exe 一直点下一步就行 3.Axure10中文 打开Axure…

LangChain-Chatchat 实践

目录 1. 说明 相关路径: 安装环境: 2. 安装 2.1 工具准备 2.2 资料准备 2.3 执行 3. 测试 3.1 LLM对话 3.2 知识库 3.3 API 接口 参考 1. 说明 比较了几个AI LLM的集成应用工具(比如Quivr, Dify, one-api), 还是LangChain-Chatchat更符合我的需要: 支持私有化部署…