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

力扣543. 二叉树的直径

Problem: 543. 二叉树的直径

文章目录

  • 题目描述
  • 思路
  • 复杂度
  • Code

题目描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述

思路

1.最大直径 == 左子树的最大深度 + 右子树的最大深度
2.定义一个变量maxDiameter记录最大直径,并编写一个递归函数maxDepth,利用树的后序遍历每次递归求取leftMax(左子树的最大深度)和rightMax(右子树的最大深度),同时更新maxDiameter(maxDiameter == max(maxDiameter, (leftMax + rightMax)));递归函数每次返回1 + max(leftMax, rightMax)

复杂度

时间复杂度:

O ( n ) O(n) O(n);其中 n n n为数的节点个数

空间复杂度:

O ( h ) O(h) O(h);其中 h h h为树的高度

Code

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {//Maximum recorded diameterint maxDiameter = 0;
public:/***Find the maximum diameter** @param root The root of binary tree* @return int*/int diameterOfBinaryTree(TreeNode* root) {maxDepth(root);return maxDiameter;}/*** Post-order traversal** @param root The root of binary tree* @return int*/int maxDepth(TreeNode* root) {if (root == nullptr) {return 0;}int leftMax = maxDepth(root -> left);int rightMax = maxDepth(root -> right);//After the order position, find the maximum diameterint myDiameter = leftMax + rightMax;maxDiameter = max(myDiameter, maxDiameter);return 1 + max(leftMax, rightMax);}
};
http://www.lryc.cn/news/311954.html

相关文章:

  • python网络爬虫教程笔记(1)
  • C# 异步返回类型详解
  • BAT等大厂必问技术面试题,【2024Android最新学习路线
  • 72. 编辑距离【leetcode】/动态规划难
  • 【MySQL】视图、索引
  • 反编译java生成的.class文件
  • Cookie 探秘:了解 Web 浏览器中的小甜饼
  • Python线性代数数字图像和小波分析之二
  • LC.exe”已退出,代码为 -1
  • springboot + jpa + 达梦数据库兼容 Mysql的GenerationType.IDENTITY主键生成策略
  • Redis优化与应用
  • 深入了解Kafka的文件存储原理
  • RabbitMQ 高级
  • 音视频开发之旅——音频基础概念、交叉编译原理和实践(LAME的交叉编译)(Android)
  • 直播美颜SDK开发指南:构建个性化的主播美颜工具
  • 羊大师揭秘,羊奶有哪些好处和不足呢?
  • 鸿蒙问题之CustomDialog后持久化@state数据崩溃
  • 微服务高性能通信技术-gRPC实战落地
  • 洛阳旅游攻略
  • 图论例题解析
  • 图解 TCP 拥塞控制
  • Nginx配置文件的整体结构
  • [SpringCloud] OpenFeign核心架构原理 (三)
  • elementUI Table组件点击取当前行索引
  • 组基轨迹建模 GBTM的介绍与实现(Stata 或 R)
  • 解决前端性能问题:如何优化大量数据渲染和复杂交互?
  • 【Vue3】深入理解Vue中的ref属性
  • CentOS上安装与配置Nginx
  • DataGrip 连接 Centos MySql失败
  • 【图论】图的遍历 - 构建领接表(无向图)