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

力扣-543.二叉树的直径

题目描述

给你一棵二叉树的根节点,返回该树的 直径

二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。

两节点之间路径的 长度 由它们之间边数表示。

class Solution {
public:int maxLength(TreeNode *root, int &ans) {if (!root) {return 0;}int left = maxLength(root->left, ans);int right = maxLength(root->right, ans); //这里不用left和right提前算出来会超时ans = max(ans, left + right);return max(left, right) + 1;}int diameterOfBinaryTree(TreeNode *root) {int ans = 0;maxLength(root, ans);return ans;}
};

小结:这道题感觉依然有中等题的难度,需要转化一下思维,直径相当于左子树最大高度+右子树最大高度,同时注意这种需要在递归中不断更新并回收一个数,在C++中使用引用&的写法。

相关文章:

  • DCDC输入4.5V-65V耐压 5A电流异步降压芯片SL3075兼容替换TPS54560
  • WPF自定义控件开发全指南:多内容切换与动画集成
  • React状态管理-对state进行保留和重置
  • 简单介绍Qt的属性子系统
  • 【RabbitMQ】七种工作模式介绍
  • blazor与硬件通信实现案例
  • 【基础编程】EF中的事务与SQL数据库事务的区别
  • 爬虫Incapsula reese84加密案例:Etihad航空(纯算法)
  • day 24
  • 闭包原理与常见陷阱
  • WSL 安装 Debian 12 后,Linux 如何安装 nginx ?
  • HarmonyOS 【诗韵悠然】AI古诗词赏析APP开发实战从零到一系列(二、项目准备与后台服务搭建)
  • linux操作系统命令
  • 《量子语言模型研究综述》核心解读
  • Axure应用交互设计:表格跟随菜单移动效果(超长表单)
  • 【JavaScript】JavaScript实现大数相乘
  • RDD的自定义分区器
  • 运行Spark程序-在shell中运行
  • 【Ubuntu】neovim Lazyvim安装与卸载
  • 网络状态可以通过hutool.HttpStatus获取
  • 我的科学观|梅彦昌:科技创新关键在于能否跑得快,而不是有没有钱
  • 山东省市监局“你点我检”专项抽检:一批次“无抗”鸡蛋农兽药残留超标
  • 沈阳卫健委通报“健康证”办理乱象:涉事医院已被立案查处
  • 日本广岛大学一处拆迁工地发现疑似未爆弹
  • 福州千余公共道路泊车位装“智能地锁”续:运营公司被责令改正并罚款
  • 《新时代的中国国家安全》白皮书(全文)