c_cpp 二叉树的直径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 二叉树的直径相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
struct TreeNode {
    int data;
    TreeNode *left, *right;
    TreeNode(int d) : data(d), left(NULL), right(NULL) {}
};

int height(TreeNode *root) {
    if(!root) return 0;
    int hl = height(root->left), hr = height(root->right);
    return hl > hr ? hl + 1 : hr + 1;
}

int diameter(TreeNode *root) {
    if(!root) return 0;
    int hl = height(root->left), hr = height(root->right);
    return max(hl + hr + 1, max(diameter(root->left), diameter(root->right)));
}

int main()
{
    TreeNode *r = new TreeNode(5);
    r->left = new TreeNode(4); r->right = new TreeNode(6);
    r->left->left = new TreeNode(3);
    r->right->right = new TreeNode(7);
    cout << diameter(r);
    return 0;
}

以上是关于c_cpp 二叉树的直径的主要内容,如果未能解决你的问题,请参考以下文章

543. 二叉树的直径

543-二叉树的直径

刷题20:二叉树的直径

LeetCode 0543. 二叉树的直径

LeetCode 0543. 二叉树的直径

二叉树的直径-leetocde543