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

40 二叉树的直径

二叉树的直径

    • 总结:两个节点之间最长路径 = 路径的结点数 - 1
    • 题解1 递归——DFS

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

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

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

在这里插入图片描述
提示:

  • 树中节点数目在范围 [1, 1 0 4 10^4 104] 内
  • -100 <= Node.val <= 100

总结:两个节点之间最长路径 = 路径的结点数 - 1

题解1 递归——DFS

/*** 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 {// 以某结点开始的路径 经过的 最大结点数// 直径 = 最大结点数 -1(间隔) int maxlen = 1;
public:int getdepth(TreeNode* root){if(! root) return 0;// 左树深度int L = getdepth(root->left);// 右树深度int R = getdepth(root->right);// 按顺序递归保证计算了每个结点的情况// 此root开始的路径经过的最大结点数maxlen = max(maxlen, L+R+1);// depthreturn max(L, R) + 1;}int diameterOfBinaryTree(TreeNode* root) {if(! root) return 0;getdepth(root);return maxlen-1;}
};

在这里插入图片描述

http://www.lryc.cn/news/180911.html

相关文章:

  • Thread.sleep(0)的作用是什么?
  • 浏览器指定DNS
  • 虚拟机安装 centos
  • 【计算机网络笔记九】I/O 多路复用
  • 踩坑日记 《正确的使用Vuex》基于 uniapp Vue3 setup 语法糖 vuex4 项目 太多坑了要吐了
  • Python无废话-办公自动化Excel修改数据
  • MySQL系统架构设计
  • Google vs IBM vs Microsoft: 哪个在线数据分析师证书最好
  • 数据链路层 MTU 对 IP 协议的影响
  • 一文拿捏基于redis的分布式锁、lua、分布式性能提升
  • 机器学习必修课 - 如何处理缺失数据
  • 阿里云服务器方升架构、自研硬件、AliFlash技术创新
  • 知识工程---neo4j 5.12.0+GDS2.4.6安装
  • BUUCTF reverse wp 81 - 85
  • 数据结构-哈希表
  • 深度学习在图像识别领域还有哪些应用?
  • 前端项目练习(练习-005-webpack-03)
  • 『力扣每日一题10』:字符串中的单词数
  • 初级篇—第三章多表查询
  • <Xcode> Xcode IOS无开发者账号打包和分发
  • vertx的学习总结2
  • 网络安全内网渗透之DNS隧道实验--dnscat2直连模式
  • 探索ClickHouse——连接Kafka和Clickhouse
  • 基于监督学习的多模态MRI脑肿瘤分割,使用来自超体素的纹理特征(Matlab代码实现)
  • 【RocketMQ】(八)Rebalance负载均衡
  • 线性筛和埃氏筛
  • 【Java 进阶篇】JDBC ResultSet 类详解
  • Centos7常用服务脚本(.service)
  • MySQL 视图View的SQL语法和更新(视图篇 二)
  • 38 翻转二叉树