C++ LeetCode543题解二叉树直径

 更新时间:2022年12月16日 14:55:04   作者:LetMeFly  
这篇文章主要为大家介绍了C++ LeetCode543题解二叉树直径,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

LeetCode 543.二叉树的直径

力扣题目链接:leetcode.cn/problems/di…

给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。

示例 :给定二叉树

返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。

注意:两结点之间的路径长度是以它们之间边的数目表示。

方法一:深度优先搜索求二叉树的深度

我们只需要求出每个节点的左子树的最大深度,以及右子树的最大深度。

AC代码

C++

class Solution {
private:
    int ans;
    int getDeepth(TreeNode* root) {
        if (!root)
            return 0;
        int left = getDeepth(root->left);
        int right = getDeepth(root->right);
        ans = max(ans, left + right);
        return max(left, right) + 1;
    }
public:
    int diameterOfBinaryTree(TreeNode* root) {
        ans = 0;
        getDeepth(root);
        return ans;
    }
};

以上就是C++ LeetCode543题解二叉树直径的详细内容,更多关于C++ 二叉树直径的资料请关注脚本之家其它相关文章!

相关文章

  • C++ DFS算法实现走迷宫自动寻路

    C++ DFS算法实现走迷宫自动寻路

    这篇文章主要为大家详细介绍了C++ DFS算法实现走迷宫自动寻路,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • C语言中自定义类型详解

    C语言中自定义类型详解

    大家好,本篇文章主要讲的是C语言中自定义类型详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • C++中perror和fprintf区别解析

    C++中perror和fprintf区别解析

    本文主要对比了C语言中的两个函数perror和fprintf的区别,perror主要用于输出与系统错误相关的消息,根据全局变量errno的值生成错误信息,而fprintf则用于格式化输出任意类型的信息到指定的文件流
    2024-10-10
  • 关于Visual Studio无法打开源文件

    关于Visual Studio无法打开源文件"stdio.h"问题

    这篇文章主要介绍了关于Visual Studio无法打开源文件"stdio.h"问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • C语言Iniparser库实现ini文件读写

    C语言Iniparser库实现ini文件读写

    iniparser是针对INI文件的解析器。ini文件则是一些系统或者软件的配置文件。本文就来介绍一下如何利用Iniparser库实现ini文件读写吧
    2023-03-03
  • VC++文件监控之FindFirstChangeNotification

    VC++文件监控之FindFirstChangeNotification

    因为ReadDirectoryChangesW 上次测试发现不能多级目录监控,所以尝试用FindFirstChangeNotification来实施文件监控,需要的朋友可以参考下
    2019-04-04
  • Qt使用TabWidget实现多窗体功能

    Qt使用TabWidget实现多窗体功能

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,本章将重点介绍TabWidget标签组件的常用方法及灵活运用,需要的朋友可以参考下
    2023-12-12
  • C语言转义字符实例详解

    C语言转义字符实例详解

    这里主要介绍了C语言的转义字符的知识,并附有示例代码,以便理解,希望对学习 C语言的同学有所帮助
    2016-07-07
  • C语言链表详解及代码分析

    C语言链表详解及代码分析

    这篇文章主要介绍了C语言链表详解及代码分析,说明了链表的定义与概念,通过详细的代码展示了基于链表的增删改查功能,希望本文能对你有所帮助
    2021-06-06
  • C语言实现将彩色bmp图像转化为灰图、灰度图像反色

    C语言实现将彩色bmp图像转化为灰图、灰度图像反色

    这篇文章主要为大家详细介绍了C语言实现将彩色bmp图像转化为灰图、灰度图像反色,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10

最新评论